1

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

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"
4

3 回答 3

6

对,suppressMilliseconds仅当它们为 0 时才适用。(请参见此处)。

但是有一个更简单的方法来舍入第二个:

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

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

于 2018-03-13T21:17:18.917 回答
3
const { DateTime } = require("luxon");
let time = DateTime.now().set({milliseconds: 0});
time = time.toISO({suppressMilliseconds: true});
console.log(time);

它应该帮助并解决问题。

于 2021-03-31T13:46:37.050 回答
1

我这样做的方式:

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

使用 RegExp 删除“。” 还有我吃的米利斯

2021-02-22T18:03:29.519Z

用替换 RegExp

2021-02-22T18:05:44Z

于 2021-02-22T18:09:11.973 回答