如何在javascript中将正常日期2012.08.10
转换为unix时间戳?
小提琴:http://jsfiddle.net/J2pWj/
我在这里看过许多帖子,用PHP,Ruby等转换它......但是我需要在JS中做这个。
答案 0 :(得分:144)
new Date('2012.08.10').getTime() / 1000
答案 1 :(得分:37)
parseInt((new Date('2012.08.10').getTime() / 1000).toFixed(0))
添加toFixed(0)
以除去任何小数除以1000以将其从毫秒转换为秒非常重要。
.getTime()
函数返回时间戳(以毫秒为单位),但真正的unix时间戳总是以秒为单位。
答案 2 :(得分:7)
你应该查看moment.js api,它非常易于使用,并且具有许多内置功能。</ p>
我认为对于你的问题,你可以使用这样的东西:
var unixTimestamp = moment('2012.08.10', 'YYYY.MM.DD').unix();
答案 3 :(得分:5)
您可以简单地使用一元+运算符
(+new Date('2012.08.10')/1000).toFixed(0);
答案 4 :(得分:4)
var d = '2016-01-01T00:00:00.000Z';
console.log(new Date(d).valueOf()); // returns the number of milliseconds since the epoch
&#13;
答案 5 :(得分:2)
您可以使用 Date.parse(),但它接受的输入格式取决于实现。但是,如果您可以将日期转换为 ISO格式(YYYY-MM-DD),则大多数实现都应该理解它。
答案 6 :(得分:1)
var datestr = '2012.08.10';
var timestamp = (new Date(datestr.split(".").join("-")).getTime())/1000;
答案 7 :(得分:1)
将时间戳与PHP中的时间戳进行比较后,以上所有内容对我的时区都不正确。下面的代码给了我与PHP相同的结果,这对我正在进行的项目最重要。
function getTimeStamp(input) {
var parts = input.trim().split(' ');
var date = parts[0].split('-');
var time = (parts[1] ? parts[1] : '00:00:00').split(':');
// NOTE:: Month: 0 = January - 11 = December.
var d = new Date(date[0],date[1]-1,date[2],time[0],time[1],time[2]);
return d.getTime() / 1000;
}
// USAGE::
var start = getTimeStamp('2017-08-10');
var end = getTimeStamp('2017-08-10 23:59:59');
console.log(start + ' - ' + end);
我在NodeJS上使用它,我们有时区'澳大利亚/悉尼'。所以,我不得不在.env文件中添加它:
TZ = 'Australia/Sydney'
以上相当于:
process.env.TZ = 'Australia/Sydney'
答案 8 :(得分:1)
您可以使用Date.parse()方法进行操作。
Date.parse($("#yourCustomDate).val())
Date.parse(“ 03.03.2016”) 输出-> 1456959600000
Date.parse(“ 2015-12-12”) 输出-> 1449878400000
答案 9 :(得分:1)
var date = new Date('2012.08.10');
var unixTimeStamp = Math.floor(date.getTime() / 1000);
在这种情况下,仅返回一个整数非常重要(这样一来,简单的除法就不会实现),并且仅返回实际经过的秒数(这就是为什么此代码使用Math.floor()
而不是{{1}的原因}。
答案 10 :(得分:0)
将时间戳转换为unix时间戳。
const date = 1513787412;
const unixDate = new Date(date * 1000);// Dec 20 2020 (object)
获取转换后的时间戳
const TimeStamp = new Date(date*1000).getTime(); //1513787412000