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

时间:2019-09-25 18:03:33

标签: javascript momentjs

我试图将日期设为空。 因此,当我单击清除按钮时,我试图将它们全部设置为0。

Ans = [287.36, 276.19, 95.042, 84.266, 56.562, 40.971, 26.053, 55.910, 50.825, 18.681, 11.380, 7.2471, 4.4876, 5.5152, 1.2431, 7.7696, 7.7694, 7.7681, 7.7570, 7.6627, 6.8581, 205.68, 194.91, 167.20, 151.61, 136.69, 228.85, 66.226, 66.225, 66.214, 66.120, 65.315, 58.457, 26.451, 19.150, 15.017, 12.258, 13.285, 7.7702, 83.870, 14.296, 13.595]

在那之后,我试图立即从其他函数中添加0。

for i in range(len(Vars)):

    Vars[i] = Ans[i]

,但显示startDate = 1969年12月31日,星期三。 请帮助我确定所有日期都为空。

3 个答案:

答案 0 :(得分:7)

将数字传递给JSONParser parser = new JSONParser(); JSONObject jsonObject = (JSONObject) parser.parse(jsonData); 函数时,它将其解释为unix时间戳。
自EPOCH时间以来的秒数,即moment()

因此,将01-01-1970传递给该函数会导致1970年1月1日的第一秒。
正如Bergi所指出的,您可能会在本地时区显示日期,结果在0之前。

如果要创建一个空日期,应将01-01-1970设置为空并正确处理(使用startDate语句)。

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

答案 1 :(得分:1)

在应用程序中使用日期可能会很棘手。没有时间就是时间。至少在编程领域不是这样。因此,我们必须对缺乏时间会产生自己的理解。

没有时间没有时间,但是缺乏价值

您显然理解了这一点,您有一种方法,在您的情况下,简单地将时间设为零似乎很好,因为在使用EPOCH时间的情况下进行处理时,它刚刚中断。因此,零就是时间。

您将必须像我们其他人一样进行测试。

this.newQuarters.forEach(function (_value, index) {
  var startDate = _value.startDate ? moment(_value.startDate) : null;

缺少时间可能是您想要的任何东西,可以定义,为空,可以作为开始日期

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

答案 2 :(得分:0)

如果要处理momentjs库,则有一个功能:invalid()

您可以轻松地使变量成为瞬时对象无效对象并控制其有效性。

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>