我需要一个解决方案来转换、解析或格式化 Date() toString,如“2012 年 12 月 1 日”。我发现这个例子是字符串:'mmm d,yyyy',但它不起作用。
问问题
1830 次
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 回答