在javascript中从字符串转换日期

时间:2011-06-15 10:46:58

标签: javascript datetime date

我需要将字符串格式的日期(例如“2011-05-12 16:50:44.055”)转换为自1970年1月1日午夜以来的日期格式Javascript中的毫秒数

4 个答案:

答案 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

DEMO HERE

没有毫秒:

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());