【发布时间】:2016-12-02 08:41:25
【问题描述】:
我有纪元时间戳值,我想从中提取时间。
例如:输入1480687432 i.e.(Fri Dec 02 2016 14:03:52 GMT+0530 (IST)) 输出14:03:52,我想将它与日落/日出时间(也用于未来的惊喜/日落时间)进行比较,以确定是白天还是黑夜。我正在使用以下方法,任何人都可以在javascript 或moment.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))
【问题讨论】:
-
使用 moment 你可以这样做:
moment(timestamp * 1000).format('HH:mm:ss')如果你想将时间部分作为字符串。 -
您转换为日期似乎返回了错误的值。如果 1480687432 是 ECMAScript 纪元以来的秒数,那么它代表 2016-12-02T19:33:52.000+0530。您的时间似乎是 UTC,而不是 IST。
-
@VincenzoC moment(timestamp * 1000).format('HH:mm:ss') 这将以字符串格式返回时间,这将再次引发与字符串比较两次的问题。我通过创建时间对象立即发现了这一点。
moment(moment.unix(epochtimestamp).format("HH:mm:ss"), "HH:mm:ss"); -
moment().isBefore()和moment().isAfter()可以用来比较
标签: javascript date momentjs