Після порівняння мітки часу з тим, що вийшов із 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'