将正常日期转换为 unix 时间戳

Convert normal date to unix timestamp

本文关键字:转换 unix 时间戳 日期 常日期      更新时间:2023-09-26

如何在javascript中将正常的日期2012.08.10转换为unix时间戳?

小提琴:http://jsfiddle.net/J2pWj/我在这里看到很多帖子将其转换为 PHP、Ruby 等......但我需要在 JS 中执行此操作。

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

查看 JavaScript Date 文档。

parseInt((new Date('2012.08.10').getTime() / 1000).toFixed(0))

请务必添加除以 1000 时删除任何小数toFixed(0)以从毫秒转换为秒。

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

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

你应该

看看那一刻.js api,它非常易于使用,并且具有许多内置功能。

我认为对于您的问题,您可以使用这样的东西:

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

您可以使用 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() )。

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

请参阅为什么 Date.parse 给出不正确的结果?。

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

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

http://xkr.us/articles/javascript/unary-add/- 在"日期"下查看。

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

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

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

const date = 1513787412; const unixDate = new Date(date * 1000);// Dec 20 2020 (object)

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

使用 dayjs 库:

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

您可以使用:

Math.round((new Date('specific date')).getTime() / 1000)  //it will return current timestamp in seconds