Luxon - 设置toISO()的毫秒数

时间:2018-03-08 10:57:13

标签: milliseconds luxon

我正在使用以下内容来结束日期选择器的日期:

var date = DateTime.fromISO('2018-05-05').endOf('day');

我最终想要的是

"2018-05-05T23:59:59+02:00"

然而,我无法摆脱毫秒:

console.log(date.toISO({suppressMilliseconds: true}));
// => outputs "2018-05-05T23:59:59.999+02:00"

除了简单地将millisecond设置为0:

之外,还有更优雅的方法吗?
date.c.millisecond = 0;
console.log(date.toISO({suppressMilliseconds: true}));
// => outputs "2018-05-05T23:59:59+02:00"

3 个答案:

答案 0 :(得分:2)

const { DateTime } = require("luxon");
let time = DateTime.now().set({milliseconds: 0});
time = time.toISO({suppressMilliseconds: true});
console.log(time);

它应该有助于解决问题。

答案 1 :(得分:1)

我的做法:

DateTime.now().toISO().replace(/\.\d{0,3}/, "");

使用 RegExp 删除“.”和毫厘 我有

<块引用>

2021-02-22T18:03:29.519Z

用替换正则表达式

<块引用>

2021-02-22T18:05:44Z

答案 2 :(得分:0)

是的,suppressMilliseconds仅适用于0 {(见here)。

但是有一个更简单的方法来完善第二个:

DateTime.fromISO('2018-05-05')
  .endOf('day')
  .startOf('second')
  .toISO({ suppressMilliseconds: true })

你不应该像在你的解决方法中那样改变Luxon对象。