考虑我从服务器返回的以下时间戳:
2016-09-15T18:15:00.0000000
如果我执行以下操作:
function friendlyTime(timeslot) {
const time = timeslot,
timeDate = new Date(time),
timeHours = `0${timeDate.getHours().toString()}`.slice(-2),
timeMinutes = `0${timeDate.getMinutes().toString()}`.slice(-2);
return `${timeHours}:${timeMinutes}`;
}
const slot = friendlyTime('2016-09-15T18:15:00.0000000');
我回来了:
19:15
,而我真正想要的是没有 BST 的时间戳的反射(reflect),例如 18:15
。
有没有简单的方法来做到这一点?一提到 JavaScript 中的日期和时区,我的脑袋就会爆炸。
无论任何人在世界的哪个 Angular 落,它都需要看起来一样。它不应反射(reflect)任何人的个人时间设置。
最佳答案
只需操作字符串,一种支持 4 to 6 digit common spec years 的可能性(或更多)。
function friendlyTime(timeslot) {
return timeslot.split('T').pop().split(':', 2).join(':');
}
console.log(friendlyTime('2016-09-15T18:15:00.0000000'));
另一种,如果只需要支持4位数的年份。 (Javascript is spec'd for 4)
function friendlyTime(timeslot) {
return timeslot.slice(11, 16);
}
console.log(friendlyTime('2016-09-15T18:15:00.0000000'));
关于javascript - 在 JavaScript 中从没有 BST 的时间戳格式化日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39497719/