0

我需要一个解决方案来转换、解析或格式化 Date() toString,如“2012 年 12 月 1 日”。我发现这个例子是字符串:'mmm d,yyyy',但它不起作用。

4

3 回答 3

1

您的问题不清楚是否要将字符串转换为日期,反之亦然。

要将Date对象转换为您要查找的格式:

function dateToString(d) {
  var month = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'][d.getMonth()];
  return month + ' ' + d.getDate() + ', ' + d.getFullYear();
}

要将指定格式的字符串转换为 a Date

function stringToDate(s) {
  var match = s.match(/^(\w{3}) (\d{1,2}), (\d{4})$/);

  if (match) {
    var month = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'].indexOf(match[1]);
    return new Date(match[3], month, match[2]);
  } else {
    return undefined;
  }
}

请注意,stringToDate需要Array.indexOf. 并非所有浏览器都支持此功能,但可以对其进行填充。

于 2013-01-03T10:33:01.553 回答
0

我会建议你手动解析日期。

使用此功能:

// 以 yyyy-mm-dd 格式解析日期
函数解析日期(输入){
   var 部分 = input.match(/(\d+)/g);
   // new Date(year, month [, date [, hours[, minutes[, seconds[, ms]]]]])
   返回新日期(部分[0],部分[1]-1,部分[2]);// 月份是从 0 开始的
}
于 2013-01-03T10:09:49.337 回答
0
dateFormat(Date(), "mmm d, yyyy");

不工作?

参考这里:

http://blog.stevenlevithan.com/archives/date-time-format

好吧,对不起 - 刚刚看到,你必须包括:

http://stevenlevithan.com/assets/misc/date.format.js

让它像第一个链接中描述的那样工作......

于 2013-01-03T10:11:35.160 回答