如何在JavaScript中将普通日期2012.08.10
转换为Unix时间戳?
我看到很多关于在PHP、Ruby等语言中进行转换的帖子,但我需要在JS内部完成这个操作。
如何在JavaScript中将普通日期2012.08.10
转换为Unix时间戳?
我看到很多关于在PHP、Ruby等语言中进行转换的帖子,但我需要在JS内部完成这个操作。
Math.floor(new Date('2012.08.10').getTime() / 1000)
请查看JavaScript日期文档。
getTime
函数返回的是毫秒。 - Shahin GhasemiparseInt((new Date('2012.08.10').getTime() / 1000).toFixed(0))
将toFixed(0)
添加到除以1000以从毫秒转换为秒时删除任何小数位非常重要。
.getTime()
函数返回时间戳(以毫秒为单位),但真正的Unix时间戳始终以秒为单位。
Math.round
或者 Math.floor
,而不是将其转换为字符串再转回整数。具体来说,可以使用以下方式:Math.round(new Date('2012.08.10').getTime() / 1000)
。 - mindplay.dkMath.floor(new Date('2012.08.10').getTime() / 1000)
,这种方法会非常慢。原因是因为这段代码涉及到字符串操作,而在我的理解中,这比仅仅处理数字更加耗费性能。 - jaquinocodevar d = '2016-01-01T00:00:00.000Z';
console.log(new Date(d).valueOf()); // returns the number of milliseconds since the epoch
你应该查看moment.js API,它非常易于使用并且有很多内置功能。
我认为对于你的问题,你可以使用类似以下代码:
var unixTimestamp = moment('2012.08.10', 'YYYY.MM.DD').unix();
Date.parse($("#yourCustomDate).val())
Date.parse("03.03.2016") 输出-> 1456959600000
Date.parse("2015-12-12") 输出-> 1449878400000
这段内容是关于日期解析的示例,第一行代码是将字符串"03.03.2016"转换成时间戳输出,输出结果为1456959600000。第二行代码是将字符串"2015-12-12"转换成时间戳输出,输出结果为1449878400000。var date = new Date('2012.08.10');
var unixTimeStamp = Math.floor(date.getTime() / 1000);
Math.floor()
而不是Math.round()
)。(+new Date('2012.08.10')/1000).toFixed(0);
http://xkr.us/articles/javascript/unary-add/ - 在日期下查看。/
已经是一个数学运算符。另外,如果类型很重要的话,toFixed
返回的是一个字符串而不是一个数字。 - Laurensvar datestr = '2012.08.10';
var timestamp = (new Date(datestr.split(".").join("-")).getTime())/1000;
Math.floor((+new Date())/1000)
。 - Mars Robertson