【问题标题】:Convert words to date将单词转换为日期
【发布时间】:2017-07-25 08:59:54
【问题描述】:

好的,我正在想办法把这样的词变成:

Sun-Mar-5-2017

转换成数字日期格式,如:

03052017

我所知道的就是把数字变成文字,但反过来不行。 那么,在 JavaScript 中是否可行?

【问题讨论】:

  • 你试过moment.js (momentjs.com)吗?
  • 一个简单的解析和格式化函数大概是4行代码,你试过什么?
  • 不,因为有些时候 js 参数......很奇怪......好吧,至少到目前为止我正在使用的东西。我试过date.parse 并且......结果很奇怪:/

标签: javascript date type-conversion


【解决方案1】:

有我的解决方案,但您可以认为 Jeremy Jackson 的解决方案更好。

function formatDate(date) {
    var dateSplited = date.split("-");

  var monthNames = [
    "Jan", "Feb", "Mar",
    "Apr", "May", "Jun", "Jul",
    "Aug", "Sep", "Oct",
    "Nov", "Dec"
  ];

  var day = dateSplited[2];
    if (day < 10){
    day = "0" + day;
  }  
  var month = monthNames.indexOf(dateSplited[1]) + 1;
    if (month < 10){
    month = "0" + month;
  }  
  var year = dateSplited[3];

  return month + day + year;
}

alert(formatDate("Sun-Mar-5-2017"));

【讨论】:

  • Re "... 认为 Jeremy Jackson 的更好。" 不,我不知道。 ;-)
  • 好吧,如果我的答案适合您,请用绿色勾号将其标记为答案。否则,请标记任何其他答案或提供更多信息,我们如何为您提供帮助。
  • 这是唯一对我有用的。多谢,伙计! :D coz moment.js 以某种方式奇怪地结束了。这可能是因为我正在处理的一些参数:/
【解决方案2】:

是的,可以这样做:

function formatDate(date) {
    var dd = (date.getDate() < 10 ? '0' : '') + date.getDate();
    var MM = ((date.getMonth() + 1) < 10 ? '0' : '') + (date.getMonth() + 1);
    var yyyy = date.getFullYear();

    // create the format you want
    return (MM + "" + dd + "" + yyyy);
}

var dateString = 'Sun-Mar-5-2017';
var dateObj = new Date(dateString);
var newDateString = formatDate(dateObj);

【讨论】:

  • new Date('Sun-Mar-5-2017') 在 Firefox 和 IE 中返回无效日期(至少)。您不应使用 Date 构造函数(或 Date.parse)解析字符串。
【解决方案3】:

Moment.JS 在这里很简单。

var inputDate = 'Sun-Mar-5-2017',
    outDate;

// replace '-' with space ' ' to have proper date string 
inputDate = inputDate.replace(/-/g, ' ');

outDate = moment(inputDate).format('MMDDYYYY'); //"03052017"

【讨论】:

  • 是的,但它有点重。而且我不能让我的程序太重
  • 太重是什么意思?你能解释一下吗?
  • 是的。 moment.js 正在使用的一些参数,我也在使用,因此呈现方式不同并且延迟了我的应用程序。 :/ 真的很奇怪。
  • 嗯,这是您的代码中的其他问题,这是解决您的问题的非常简单和最简单的方法,因为在我们应用程序的其他地方可以使用日期操作,而且它的大小只有几个 kbs很高兴拥有
  • 但如果您不必使用所有这些代码,那么它们将被视为空闲或垃圾代码:/ 因此可能会减慢其他代码的渲染速度等等。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多