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

我试图制作空日期。所以当我单击清除按钮时,我试图将它们全部设为 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。请帮我找到使所有日期都为空。


噜噜哒
浏览 312回答 3
3回答

摇曳的蔷薇

将数字传递给moment()函数时,它会将其解释为 unix 时间戳。这是自 EPOCH 时间以来的秒数,或01-01-1970。因此,传递0给该函数的结果是 1970 年 1 月 1 日的第一秒。正如Bergi指出的那样,您可能正在本地时区中显示日期,这可能导致01-01-1970.如果你想创建一个空日期,你应该将你的设置startDate为空并正确处理它(使用if语句)。您还可以通过不向moment()函数传递参数来将日期设置回当前时间。

当年话下

在应用程序中使用日期可能很棘手。没有不是时间的时间。至少在编程世界中不是。出于这个原因,我们必须建立自己对缺乏时间的理解。没有时间就没有时间,但缺乏价值。你显然明白这一点,你有一种方法,在你的情况下,你似乎只要让时间为零就可以了,它在使用时刻工作时会中断,因为时刻使用 EPOCH 时间。因此,零是时间。您将不得不像我们其他人一样进行测试。this.newQuarters.forEach(function (_value, index) {  var startDate = _value.startDate ? moment(_value.startDate) : null;缺少时间可以是任何你想要的,未定义,空,开始日期保持一致:数据库供应商和语言处理事情的方式不同,前端并不总是相同的时区等。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript