我尝试将日期设为空。因此,当我单击clear按钮时,我尝试将它们全部设为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年。请帮我找一下,使所有日期都为空。
发布于 2019-09-26 02:08:25
当将一个数字传递给moment()函数时,它将其解释为unix时间戳。
这是自纪元时间以来的秒数,或01-01-1970。
因此,将0传递给该函数将导致1970年1月1日的第一秒。
正如Bergi指出的,您可能会以当地时区显示日期,这可能会导致时间早于01-01-1970。
如果您想创建一个空日期,您应该将您的startDate设置为null并正确地处理它(使用if语句)。
您还可以通过不向moment()函数传递任何参数来将日期设置回当前时间。
发布于 2019-09-26 02:33:59
在应用程序中处理日期可能很棘手。没有时间不是时间这回事。至少在编程领域不是这样。出于这个原因,我们必须建立我们自己对缺乏时间的理解。
没有时间就没有时间,但却缺少价值。
你显然明白这一点,你有一种方法,在你的情况下,你似乎可以简单地让时间为零,它只是在使用moment时中断了,因为moment使用的是纪元时间。因此,零就是时间。
你将不得不像我们其他人一样进行测试。
this.newQuarters.forEach(function (_value, index) {
  var startDate = _value.startDate ? moment(_value.startDate) : null;时间不足可以是您想要的任何时间,未定义,空,开始日期
保持一致:数据库供应商和语言的处理方式不同,前端并不总是相同的时区,等等。
发布于 2019-09-26 14:20:34
如果您使用的是momentjs库,则有一个函数:invalid()
你可以很容易地让你的变量成为无效的moment对象并控制它们的有效性。
let currentDate = moment(); // Valid moment object
console.log(currentDate.format());
// make the moment object invalid
currentDate = moment.invalid();
console.log(currentDate.isValid()); // Check validity
console.log(currentDate.format()); // Invalid date
// make the moment object valid again
currentDate = moment();
console.log(currentDate.isValid()); // Check validity
console.log(currentDate.format()); // A valid date<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.min.js"></script>
https://stackoverflow.com/questions/58104187
复制相似问题