我需要将字符串格式的日期(例如“2011-05-12 16:50:44.055”)转换为自1970年1月1日午夜以来的日期格式Javascript中的毫秒数
答案 0 :(得分:1)
为确保正确的跨浏览器行为,我认为您应该自己解析字符串。我把this answer塑造成了:
function msFromString(dateAsString)
{
var parts = dateAsString.match(/(\d{4})-(\d{2})-(\d{2}) (\d{2}):(\d{2}):(\d{2}).(\d{3})/);
return new Date(parts[1],
parts[2] - 1,
parts[3],
parts[4],
parts[5],
parts[6],
parts[7]).getTime();
}
console.log(msFromString("2011-05-12 16:50:44.055"));
这会输出1305211844055
。
答案 1 :(得分:1)
这适用于OSX上的Safari5和Fx5
没有毫秒:
var date_test = new Date("2011-07-14 11:23:00".replace(/-/g,"/"));
时间戳中的毫秒数
var timestamp = "2011-05-12 16:50:44.055";
var dateParts = timestamp.split(".");
var date_test = new Date(dateParts[0].replace(/-/g,"/"));
var millisecs = date_test.getTime()+parseInt("1"+dateParts[1]);
alert(millisecs+"\n"+new Date(2011,4,12,16,50,44,55).getTime());
答案 2 :(得分:0)
您是否尝试过Date.parse()
方法?它应该识别这种格式(虽然我没有测试过)。返回值应该是自1970年1月1日以来的毫秒数。
答案 3 :(得分:0)
从日期字符串中创建一个Date对象,并使用getTime()方法获取自1970年1月1日以来的毫秒数。http://www.w3schools.com/jsref/jsref_obj_date.asp
var date = new Date("2011-05-12 16:50:44.055");
document.write(date.getTime());