2016-12-02 2 views
1

У меня есть значение штампа времени, и я хочу извлечь из него Время. Например: вход 1480687432 i.e.(Fri Dec 02 2016 14:03:52 GMT+0530 (IST)) Выход 14:03:52, я хочу сравнить его с временем заката/восхода солнца (для будущих таймингов тайника/заката), чтобы узнать, день или ночь. Я использую ниже подход, может кто-нибудь пожалуйста, предложить лучший подход, чем это в javascript из в moment.jsвремя выдержки из метки времени в js

var input = 1480687432; // i.e.(Fri Dec 02 2016 14:03:52 GMT+0530 (IST))` 
 
// output 14:03:52 
 

 
function getTimeFromDate(timestamp) { 
 
    var date = new Date(timestamp * 1000); 
 
    var hours = date.getHours(); 
 
    var minutes = date.getMinutes(); 
 
    var seconds = date.getSeconds(); 
 

 
    var time = new Date(); 
 
    return time.setHours(hours, minutes, seconds); 
 
} 
 
console.log(getTimeFromDate(1480687432))

+0

Используя момент, вы можете сделать: 'момент (timestamp * 1000) .format ('HH: mm: ss') ', если вы хотите иметь временную часть как строку. – VincenzoC

+0

Ваше преобразование в дату, кажется, возвращает неправильное значение. Если 1480687432 секунд с момента ECMAScript, тогда он представляет 2016-12-02T19: 33: 52.000 + 0530. Ваше время похоже на UTC, а не IST. – RobG

+0

@ VincenzoC moment (timestamp * 1000) .format ('HH: mm: ss'), это вернет время в строчном формате, это снова поставит вопрос о сравнении двух раз со строкой. Я нашел это в момент создания объекта времени. 'moment (moment.unix (epochtimestamp) .format (" HH: mm: ss ")," HH: mm: ss "); –

ответ

1

Сейчас ваша функция возвращает метку времени. так же, как и

function getTimefromDate(timestamp) { return new Date(timestamp*1000).getTime(); } 

Возможно, вы имели в виду это (который возвращает 15:03:52 в моем часовом поясе)

function pad(num) { 
 
    return ("0"+num).slice(-2); 
 
} 
 
function getTimeFromDate(timestamp) { 
 
    var date = new Date(timestamp * 1000); 
 
    var hours = date.getHours(); 
 
    var minutes = date.getMinutes(); 
 
    var seconds = date.getSeconds(); 
 
    return pad(hours)+":"+pad(minutes)+":"+pad(seconds) 
 
} 
 
// Fri Dec 02 2016 14:03:52 GMT+0530 (IST) 
 
console.log(getTimeFromDate(1480687432))

+0

@RobG вы не можете нарезать «0» + num, если он не завернут или в var. Обновлено до() вместо String() – mplungjan

Смежные вопросы