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

问题描述 投票:64回答:10

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

小提琴:http://jsfiddle.net/J2pWj/ 我在这里看过许多帖子,用PHP,Ruby等转换它......但我需要在JS中做这个。

javascript jquery date datetime unix-timestamp
10个回答
145
投票
new Date('2012.08.10').getTime() / 1000

检查JavaScript Date documentation


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

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


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

在除以1000时,添加toFixed(0)以删除任何小数,以便从毫秒转换为秒,这一点很重要。

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


7
投票

你应该查看moment.js api,它非常易于使用,并具有许多内置功能。

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

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

6
投票

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

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

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


5
投票

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

2
投票

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

Why does Date.parse give incorrect results?


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

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'

1
投票

您可以使用Date.parse()方法来完成。

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.