如何将没有一年的日期字符串转换为JS Date对象?如何将带有年份和时间的日期字符串转换为JS Date对象?
答案 0 :(得分:4)
许多不同的日期格式只需将它们传递给Date()
构造函数即可转换为日期对象:
var date = new Date(datestring);
您的示例日期有两个原因无效。首先,它没有一年。其次,“pm”之前需要有一个空格(我不知道为什么)。
// Wed May 27 2009 23:00:00 GMT-0700 (Pacific Daylight Time)
var date = new Date("2009/05/27 11:00 pm")
如果您收到的日期格式一致,可以通过以下方式修复:
var datestring = "05/27 11:00pm";
var date = new Date("2009/" + datestring.replace(/\B[ap]m/i, " $&"));
答案 1 :(得分:3)
答案 2 :(得分:1)
我使用Dojo时间解析器来执行以下操作:
检查出来: http://api.dojotoolkit.org/jsdoc/HEAD/dojo.date.locale.parse
答案 3 :(得分:0)
不是最干净的,但有效:
var strDate = '05/27 11:00pm';
var myDate = ConvertDate(strDate, '2009');
function ConvertDate(strWeirdDate, strYear)
{
strWeirdDate = strWeirdDate.replace(/ /, '/' + strYear + ' ');
return new Date(strWeirdDate);
}
也可能首先修剪字符串。
答案 4 :(得分:0)
我写的另一个选项是:
它有一个日期/时间解析方法 - 传入一个掩码,它将验证输入并返回一个匹配的数据对象。
还支持日期/时间格式,日期数学(加/减日期部分),日期比较,专业日期解析等。它是自由开源的。