javascript - 如何将unix时间解析为 MM/dd/yyyy DD/MM/YYYY 日期

  显示原文与译文双语对照的内容
0 0

我已经将整个dateStrings堆转换为unix时间戳( 自纪元以来的毫秒) 。

我使用了 moment.js 日期库,它做得很好,除了有一个误解。 在澳大利亚,日期通常以 DD/MM/YYYY, 格式表示,但美国日期是 MM/dd/yyyy 和矩似乎是美国的日期。

这会导致日期,比如of将被解析为1 月的第十个,而不是10月的第一个。 我把这些日期存储为代表时代的数字,所以日期 上面 被存储为 970322400000 而不是 947426400000

我想把我计算出的所有日期转换成适当的值。 我需要一个函数,将 970322400000 转换为 947426400000,并将它的转换为所有未正确计算的日期。 由于其他情况,我无法从它的原始源重新处理日期。

不幸的是,我必须在 mongodb shell 中运行。

这是我已经尝试过的( 文件顶部的moment js source ) 。


db.reminders.find()
.map(function(v) {
 return {
 id: v._id,
 original: moment(v.reminderDate).format('YYYY-MM-DD'),
 repaired: moment(moment(moment(v.reminderDate).format('MM-DD-YYYY'), 'DD-MM-YYYY').valueOf()).format('YYYY-MM-DD')
 };
})

但是我担心它不能正常工作。 在输出结果中,我找不到任何日期超过 12的日期。

我在这里做什么。 我如何才能实现这种转换?

时间: 原作者:

0 0

这是个不可能的问题。 这是因为一个月大于 12的值会在月份内流过。

'01-01-2012> x

'01-13-2011'-> x

'01-25-2010'-> x

有无限的日期字符串可以针对任何给定的unix时间戳进行计算。 所以你不知道原来的datestring是什么。 这使得不可以能将时间戳值更改为将它的分析为不同的值。

通过这些问题的公平警告,存储原始的datestring 。 如果你需要将日期存储为一个数字,因为某些原因无关紧要。

原作者:
...