我需要一个解决方案来转换,解析或格式化Date()toString,如'Dec 1,2012'。我发现这个例子是String:'mmm d,yyyy',但它不起作用。
答案 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
让它像第一个链接中描述的那样工作......