Javascript date format/parse toString() 'Dec 1, 2012'



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

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

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。并不是所有的浏览器都支持这个选项,但是可以进行填充。

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

不工作?

参考此处:

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

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

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

我建议您手动解析日期。

使用这个函数:

<>之前//以yyyy-mm-dd格式解析日期函数parseDate(输入){Var parts = input.match(/(d+)/g);//new Date(年,月[,日期[,小时[,分钟[,秒[,毫秒]]]]])返回new Date(parts[0], parts[1]-1, parts[2]);//月以0为基数}

最新更新