将普通日期转换为 unix 时间戳

如何在 javascript 中将普通日期 2012.08.10转换为 unix 时间戳?

小提琴: http://jsfiddle.net/j2pwj/




我在这里看到过很多用 PHP、 Ruby 等语言进行转换的帖子,但是我需要在 JS 中进行转换。

343874 次浏览

您可以使用 Date. parse (),但是它接受的输入格式是依赖于实现的。但是,如果可以将日期转换为 ISO 格式(YYYY-MM-DD),那么大多数实现都应该能够理解它。

参见 为什么 Date.parse 会给出不正确的结果?

Math.floor(new Date('2012.08.10').getTime() / 1000)

检查 JavaScript 日期文档

var datestr = '2012.08.10';
var timestamp = (new Date(datestr.split(".").join("-")).getTime())/1000;
parseInt((new Date('2012.08.10').getTime() / 1000).toFixed(0))

在将小数除以1000从毫秒转换为秒时,添加 toFixed(0)以删除任何小数非常重要。

.getTime()函数以毫秒为单位返回时间戳,但是真正的 unix 时间戳总是以秒为单位。

您可以简单地使用 unary + 运算符

(+new Date('2012.08.10')/1000).toFixed(0);

Http://xkr.us/articles/javascript/unary-add/ -查看日期。

你应该看看 moment. js api,它非常容易使用,而且有很多内置的特性。

我想对于你的问题,你可以使用这样的东西:

var unixTimestamp = moment('2012.08.10', 'YYYY.MM.DD').unix();

var d = '2016-01-01T00:00:00.000Z';
console.log(new Date(d).valueOf()); // returns the number of milliseconds since the epoch

在将时间戳与 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'

可以使用 Date.parse ()方法进行此操作。

Date.parse($("#yourCustomDate).val())

Date. parse (“03.03.2016”) 产出-> 1456959600000

Date. parse (“2015-12-12”) 产出-> 1449878400000

var date = new Date('2012.08.10');
var unixTimeStamp = Math.floor(date.getTime() / 1000);

在这种情况下,重要的是只返回一个整数(所以简单的除法是不行的) ,并且只返回实际经过的秒(这就是为什么这段代码使用 Math.floor()而不是 Math.round())。

将时间戳转换为 unix 时间戳。

Const date = 1513787412; Const unixDate = new Date (Date * 1000) ;//Dec 202020(object)

获取转换后的时间戳 const TimeStamp = new Date(date*1000).getTime(); //1513787412000

使用 白天库:

dayjs('2019-01-25').unix() // 1548381600