【问题标题】:Setting time part to 0 in ISO date format in moment.js [duplicate]在moment.js中以ISO日期格式将时间部分设置为0 [重复]
【发布时间】:2018-01-07 23:15:40
【问题描述】:

我正在使用 moment.js 获取 ISO 格式的日期:

let matchDate= moment().add(1, 'day').toISOString();

它给了我 matchDate 的形式:

2017-08-01T18:30:00.000Z

我想把 T 之后的每个数值都设置为 0 并得到结果为

2017-08-01T00:00:00.000Z

我该怎么做?

【问题讨论】:

  • 此时它只是一个字符串,因此您可以将字符串切成 10 个字符并添加“T00:00:00.000Z”。即matchDate.slice(0,10) + "T00:00:00.000Z"

标签: javascript datetime momentjs


【解决方案1】:

你有几种可能。

这里有一些:

let matchDate = moment();
matchDate.set('hour', 0);
matchDate.set('minute', 0);
matchDate.set('second', 0);
matchDate.set('millisecond', 0);

matchDate.set({'hour': 0, 'minute': 0, 'second': 0, 'millisecond': 0});

matchDate.hour(0);
matchDate.minute(0);
matchDate.second(0);
matchDate.millisecond(0);

这里是关于获取和设置的文档:https://momentjs.com/docs/#/get-set/set/

或者,如果您不想设置时间部分并在格式中进行,您可以使用:

let matchDate = moment();
var dateString = matchDate.format('YYYY-MM-DD') + 'T00:00:00.000Z';

【讨论】:

    【解决方案2】:

    您可以直接使用startOf(unitOfTime) 函数。

    您的代码如下所示:

    let matchDate = moment().add(1, 'day').startOf('day').toISOString();
    

    参考答案:https://stackoverflow.com/a/28592432/4539906

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-11-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-22
      • 2019-06-03
      • 1970-01-01
      相关资源
      最近更新 更多