Javascript日期格式/解析toString()'2012年12月1日'

时间:2013-01-03 10:06:48

标签: javascript string date datetime format

我需要一个解决方案来转换,解析或格式化Date()toString,如'Dec 1,2012'。我发现这个例子是String:'mmm d,yyyy',但它不起作用。

3 个答案:

答案 0 :(得分: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();
}

将指定格式的字符串转换为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。并非所有浏览器都支持此功能,但可以填充。

答案 1 :(得分:0)

我建议您手动解析日期。

使用此功能:

// parse a date in yyyy-mm-dd format
function parseDate(input) {
   var parts = input.match(/(\d+)/g);
   // new Date(year, month [, date [, hours[, minutes[, seconds[, ms]]]]])
   return new Date(parts[0], parts[1]-1, parts[2]); // months are 0-based
}

答案 2 :(得分:0)

dateFormat(Date(), "mmm d, yyyy");

不起作用?

参考这里:

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

好吧,抱歉 - 刚看到,你必须包括:

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

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