Javascript 时刻js:时刻(0)=1969年12月31日星期三?

Javascript 时刻js:时刻(0)=1969年12月31日星期三?,javascript,momentjs,Javascript,Momentjs,我试着把日期定为空。 因此,当我单击“清除”按钮时,我尝试将它们全部设置为0 this.clear = function () { _this.newQuarters.forEach(function (_value, index) { _value.startDate = 0; _value.endDate = 0; _value.suppressAllocation =

我试着把日期定为空。 因此,当我单击“清除”按钮时,我尝试将它们全部设置为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。
请帮助我查找使所有日期都为空。

将数字传递给
矩()函数时,它会将其解释为unix时间戳。
这是自大纪元时间起的秒数,或
01-01-1970

因此,将
0
传递给该函数将导致1970年1月1日的第一秒钟
如前所述,您可能正在本地时区显示日期,这可能导致时间早于
01-01-1970

如果要创建空日期,应将
startDate
设置为空并正确处理(使用
If
语句)


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

在应用程序中处理日期可能很棘手。时间就是时间。至少在编程领域不是这样。出于这个原因,我们必须创造我们自己对时间短缺的理解

 this.newQuarters.forEach(function (_value, index) {
            var startDate = moment(_value.startDate);
没有时间就没有时间,但是没有价值

你们显然明白这一点,你们有一种方法,在你们的例子中,你们似乎可以简单地把时间设为零,当你们处理瞬间的时候,它就被打破了,因为瞬间使用的是纪元时间。因此,零就是时间

你必须像我们其他人一样进行测试

this.newQuarters.forEach(function (_value, index) {
  var startDate = _value.startDate ? moment(_value.startDate) : null;
时间不足可以是任何你想要的,未定义,空,开始日期


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

如果您处理的是
momentjs
库,则有一个函数:
invalid()

您可以轻松地使变量无效,并控制其有效性

让currentDate=moment();//有效力矩对象
console.log(currentDate.format());
//使力矩对象无效
currentDate=时刻。无效();
console.log(currentDate.isValid());//检查有效性
console.log(currentDate.format());//无效日期
//使力矩对象再次有效
currentDate=力矩();
console.log(currentDate.isValid());//检查有效性
console.log(currentDate.format());//有效日期

那么如何将startDate设置为空日期呢?startDate=null;我能把startDate设为无效日期吗?“结果是1970年1月1日之前的第二个”-实际上它的结果是1970年1月1日的第一个秒。如果是前一天,通常是因为您在本地时区显示了该时刻。@jinhh当您尝试将值更改为
null
时,会出现什么错误?将所有日期设为null是什么意思?是否将日、月和年设置为零?