Как получить 10-значную временную метку - PullRequest
0 голосов
/ 09 мая 2018

Я сослался на ссылку javascript getTime () только на 10 цифр . И я узнал, как преобразовать дату в 10-значную временную метку. Мое требование заключается в том, что я хочу указывать дату последнего месяца. Ниже приведен код, который я пробовал:

var date = new Date();
var firstDay = new Date(date.getFullYear(), date.getMonth(), 1);
var lastDay = new Date(date.getFullYear(), date.getMonth() + 1, 0);
var monthLastDay = Math.floor(lastDay.getTime()/1000);
console.log(monthLastDay);

Когда я запускаю вышеуказанный код, я получаю вывод: 1527705000. И когда я проверяю вывод на https://www.unixtimestamp.com/index.php., я получаю

1527705000
Is equivalent to:
05/30/2018 @ 6:30pm (UTC)

Что я считаю неправильным, поскольку в месяце 05 есть 31 день. Так что я должен отметить время как 31.05.2008.

EDIT:

Если я попробую с кодом ниже:

var date = new Date('6/8/2018');
var firstDay = new Date(date.getFullYear(), date.getMonth(), 1);
var lastDay = new Date(date.getFullYear(), date.getMonth() + 1, 0);
var monthLastDay = Math.floor(lastDay.getTime()/1000);
console.log(monthLastDay);

Я получаю вывод: 1530297000, который равен 29.06.2008. Но выходной должен быть 30.06.2008.

Дайте мне знать возможное решение, чтобы получить правильную 10-значную временную метку.

1 Ответ

0 голосов
/ 09 мая 2018

Полагаю, проблема в вашем часовом поясе.

> new Date('6/8/2018')
Fri Jun 08 2018 00:00:00 GMT+0200 (CEST)
> new Date('6/8/2018').getTime()
1528408800000 // which is 06/07/2018 @ 10:00pm (UTC)

Вы должны построить дату в UTC, если вы хотите использовать метку времени как

> var date = new Date('6/8/2018');
> Date.UTC(date.getFullYear(), date.getMonth() + 1, 0);
1530316800000 // which is 06/30/2018 @ 12:00am (UTC)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...