Mozilla浏览器我试过用JavaScript中的strtotime
来获取我的时间戳
我的代码:
//var start_date = data.result[0].start_date;
var start_date = "2011-01-26 13:51:50";
var d = Date.parse(start_date) / 1000;
console.log(d);
// 1296030110
以上代码在chrome中工作正常。但不适用于Mozilla浏览器。我得到NaN
价值。请帮帮我。
在谷歌搜索后,我找到了一个在日期和时间之间添加T
的解决方案。所以我补充说。我得到了输出,但两个浏览器的输出都不一样。
var start_date = "2011-01-26T13:51:50";
var d = Date.parse(start_date) / 1000;
console.log(d);
//Mozilla = 1296030110
//Chrome = 1296044910
答案 0 :(得分:4)
不要使用Date构造函数或Date.parse解析字符串(它们执行相同的操作),它非常不可靠,特别是对于非标准字符串(以及某些字符串)。解析" 2011-01-26 13:51:50"作为当地时间,使用库或简单的函数,如:
function parseDateTime(s) {
var b = s.split(/\D/);
return new Date(b[0],b[1]-1,b[2],b[3],b[4],b[5])
}
document.write(parseDateTime("2011-01-26 13:51:50") / 1000);

要包含验证,对缺失值的支持会在另一行上添加更多代码。
答案 1 :(得分:0)
尝试将其用于所有浏览器
start_date="2011-01-26 13:51:50".replace(" ","T");
start_date = new Date(start_date);
var d = start_date.getTime() / 1000;
答案 2 :(得分:0)
var start_date = "2011-01-26 13:51:50";
var d = Date.now(start_date);
console.log(d);
它将在mozila中运行 你不需要进行任何计算 它会自动转换为毫秒。
答案 3 :(得分:0)
试试这个。我不确定这个结果是否完美。
var start_date = Date("2011-01-26 13:51:50");
var d = Date.parse(start_date) / 1000;
console.log(d);
//1454478429
答案 4 :(得分:0)
这将起作用
var start_date = "Jan 26,2011 13:51:50 ";
var d = Date.parse(start_date)/1000;
console.log(d);
,因为
Date.parse()
方法解析日期的字符串表示形式,如果字符串无法识别或包含非法日期值January 1, 1970, 00:00:00 UTC or NaN
,则返回自(e.g. 2015-02-31)
以来的毫秒数。
parse()方法采用日期字符串(such as "Dec 25, 1995")
并返回自January 1, 1970, 00:00:00 UTC.
以来的毫秒数