moment.js 和已弃用的警告。时间戳到时刻日期对象

jam*_*non 1 momentjs

我已经阅读了有关类似问题的各种帖子,但没有一个能解决我的问题。

我操作 moment.js 日期对象,然后将其存储为时间戳。

但是,当我再次尝试读取该时间戳时,我收到了已弃用的警告。

""弃用警告:moment 构造回退到 js 日期。这是不鼓励的,并将在即将发布的主要版本中删除。请参阅https://github.com/moment/moment/issues/1407了解更多信息。”

我试过 toDate(), format(), moment(myTimeStamp, 'ddd, DD MMM YYYY HH:mm:ss ZZ'); --> 全部生成警告...

因此,例如,我的时间戳将如下所示:

const 时间戳 = '1458586740000'

当我读回并尝试解析月/日/年,然后是小时/分钟上午/下午等时......我需要将该时间戳记放入 moment.js 对象中。没有什么对我有用。有任何想法吗。

我怎样才能得到这个时间戳:'1458586740000',到一个 moment.js 对象中,以便我可以根据需要从中提取日期日期?

编辑:这就是我存储时间戳的方式。所以我需要从中检索它。

let timeStamp = Moment(state[_Date])
                           .add({ hour: state[AMPM] === 'PM'
                                      ? +state[Hour] + 12
                                      : state[Hour] ,
                                  minute: state[Min] }).format('x')
Run Code Online (Sandbox Code Playgroud)

Mag*_*int 5

X 标记表示以秒为单位的unix 时间戳,x 标记表示unix 毫秒时间戳(偏移量)。您似乎有一个毫秒时间戳,因此您可以通过执行以下操作来利用它:

var a = moment('1458586740000', 'x')
Run Code Online (Sandbox Code Playgroud)

它也可以在没有 ' 的情况下工作:

var a = moment(1458586740000, 'x')
Run Code Online (Sandbox Code Playgroud)

您也可以不指定 x 并且它应该可以工作:

moment(1458586740000)
Run Code Online (Sandbox Code Playgroud)

因为您有一个 unix 偏移量(毫秒),而不是一个 unix 时间戳(秒),所以 moment.unix 不是您想要的。

然后您可以执行以下操作:

a.format()
"2016-03-21T13:59:00-05:00"
Run Code Online (Sandbox Code Playgroud)

或者您可以使用此处列出的任何其他格式标记来输出您想要的任何结果:http : //momentjs.com/docs/#/displaying/format/

根据您提供的代码,我认为您可能遇到问题,因为您的时间戳存储为字符串(在 '' 中)。解析为字符串会导致无效日期错误,因为它尝试匹配 ISO 8601 格式并失败。指定 'x' 标记将使其假定 unix 偏移量并正常工作。