首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Moment js: moment(0) = Wed Dec 31?

Moment js: moment(0) = Wed Dec 31?
EN

Stack Overflow用户
提问于 2019-09-26 02:03:34
回答 3查看 694关注 0票数 0

我尝试将日期设为空。因此,当我单击clear按钮时,我尝试将它们全部设为0。

代码语言:javascript
运行
复制
 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。

代码语言:javascript
运行
复制
 this.newQuarters.forEach(function (_value, index) {
            var startDate = moment(_value.startDate);

但是,它显示startDate = Wed Dec 31 1969年。请帮我找一下,使所有日期都为空。

EN

回答 3

Stack Overflow用户

发布于 2019-09-26 02:08:25

当将一个数字传递给moment()函数时,它将其解释为unix时间戳。

这是自纪元时间以来的秒数,或01-01-1970

因此,将0传递给该函数将导致1970年1月1日的第一秒。

正如Bergi指出的,您可能会以当地时区显示日期,这可能会导致时间早于01-01-1970

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

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

票数 8
EN

Stack Overflow用户

发布于 2019-09-26 02:33:59

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

没有时间就没有时间,但却缺少价值

你显然明白这一点,你有一种方法,在你的情况下,你似乎可以简单地让时间为零,它只是在使用moment时中断了,因为moment使用的是纪元时间。因此,零就是时间。

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

代码语言:javascript
运行
复制
this.newQuarters.forEach(function (_value, index) {
  var startDate = _value.startDate ? moment(_value.startDate) : null;

时间不足可以是您想要的任何时间,未定义,空,开始日期

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

票数 1
EN

Stack Overflow用户

发布于 2019-09-26 14:20:34

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

你可以很容易地让你的变量成为无效的moment对象并控制它们的有效性。

代码语言:javascript
运行
复制
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
代码语言:javascript
运行
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.min.js"></script>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58104187

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档