1541638800 представляет четверг 8 ноября 2018 года в 1:00 UTC
Таким образом, отметка времени составляет секунды с момента ECMAScript 1970-01-01 UTC.
Конструктор Date принимает числовое значение, которое составляет миллисекунды с начала эпохи, поэтому его необходимо умножить на 1000.Чтобы узнать количество часов UTC в дне, используйте getUTCHours .
Если вы хотите установить часы UTC для текущего дня на то же значение, используйте setUTCHours , например
var value = 1541638800;
var utcHr = new Date(value * 1e3).getUTCHours();
var d = new Date();
d.setUTCHours(utcHr, 0,0,0);
console.log(d.toISOString());
Или с помощью moment.js:
// Create a date using seconds time value
var d = moment.unix(1541638800);
// Set date to use UTC, not local
d.utc();
// Create a date for today
var m = moment();
// Set to UTC
m.utc();
// Set hour to same hours as d, zero minutes, etc.
m.hour(d.hour()).minute(0).second(0).millisecond(0);
console.log(m);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.23.0/moment.min.js"></script>
moment.js имеет методы для час и часов , минута и минуты и т. д., которые совпадают друг с другом.
Вы также можете получить час, используя обычную математику, учитывая, что в день ECMAScript UTC ровно 8,64e4 секунды:
var value = 1541638800
// Round down to UTC hour
var utcHr = (1541638800 % 8.64e4) / 3.6e3 | 0;
var d = new Date();
d.setUTCHours(utcHr, 0,0,0);
console.log(d.toISOString());