javascript - 在 JavaScript 中从没有 BST 的时间戳格式化日期

标签 javascript date datetime ecmascript-6

考虑我从服务器返回的以下时间戳:

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/

相关文章:

python - python中两个时间戳的平均值

asp.net-mvc - 英国日期时间字段的数据注释范围

javascript - 有没有 CSS3 圆 Angular 的 JQuery 插件?

javascript - 如何将元素传递给函数

javascript - 可动态 - 每次页码更改时,记录都会附加到先前的列表中

php - mysql group by only date 并计算有多少结果

python - 需要一个以微秒为十进制的时间戳

javascript - 在 electron-builder 中检索或指定输出文件名

php - 不正确的 PHP 时间 - 45 年前的 echo

javascript - 验证javascript日期