为了账号安全,请及时绑定邮箱和手机立即绑定

Moment js:moment(0) = 1969 年 12 月 31 日星期三?

Moment js:moment(0) = 1969 年 12 月 31 日星期三?

噜噜哒 2021-10-29 10:51:21
我试图制作空日期。所以当我单击清除按钮时,我试图将它们全部设为 0。 this.clear = function () {            _this.newQuarters.forEach(function (_value, index) {                _value.startDate = 0;                _value.endDate = 0;                _value.suppressAllocation = false;                _value.quarters.forEach(function (_childValue, index) {                    _childValue.startDate = 0;                    _childValue.endDate = 0;                    _childValue.suppressAllocation = false;                });            });        };    }在那之后,我尝试从其他函数中添加 0 。 this.newQuarters.forEach(function (_value, index) {            var startDate = moment(_value.startDate);但是,它显示 startDate = Wed Dec 31 1969。请帮我找到使所有日期都为空。
查看完整描述

3 回答

?
摇曳的蔷薇

TA贡献1793条经验 获得超6个赞

将数字传递给moment()函数时,它会将其解释为 unix 时间戳。
这是自 EPOCH 时间以来的秒数,或01-01-1970

因此,传递0给该函数的结果是 1970 年 1 月 1 日的第一秒。
正如Bergi指出的那样,您可能正在本地时区中显示日期,这可能导致01-01-1970.

如果你想创建一个空日期,你应该将你的设置startDate为空并正确处理它(使用if语句)。

您还可以通过不向moment()函数传递参数来将日期设置回当前时间。


查看完整回答
反对 回复 2021-10-29
?
当年话下

TA贡献1890条经验 获得超9个赞

在应用程序中使用日期可能很棘手。没有不是时间的时间。至少在编程世界中不是。出于这个原因,我们必须建立自己对缺乏时间的理解。


没有时间就没有时间,但缺乏价值。


你显然明白这一点,你有一种方法,在你的情况下,你似乎只要让时间为零就可以了,它在使用时刻工作时会中断,因为时刻使用 EPOCH 时间。因此,零是时间。


您将不得不像我们其他人一样进行测试。


this.newQuarters.forEach(function (_value, index) {

  var startDate = _value.startDate ? moment(_value.startDate) : null;

缺少时间可以是任何你想要的,未定义,空,开始日期


保持一致:数据库供应商和语言处理事情的方式不同,前端并不总是相同的时区等。


查看完整回答
反对 回复 2021-10-29
  • 3 回答
  • 0 关注
  • 311 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号