0

基本上,我需要计算一个(非常长寿的)cookie 的到期日期,所以我想做now + 99 years。因为使用 Moment.js 之类的库比使用原生 JavaScript 更容易,所以我正在做:

var expirationDate = moment().add('years', 99);

但我需要一个 JavaScriptDate对象并toUTCString在其上调用函数来获取 cookie 的正确格式字符串。因此我正在做:

var expirationDate = m().add('years', 99).toDate().toUTCString();

现在,发生了一件非常奇怪的事情。当我在 Node.js shell 中运行这一行时,一切都很好。但是如果我从脚本中运行它,它就会失败。错误信息是

类型错误:对象周一,2112 年 10 月 24 日 07:34:34 GMT 没有方法“toUTCString”

这是正确的,因为返回的东西toDate不是 的实例Date,而只是一个普通的旧对象。奇怪的是,当我在 Node.js REPL 中尝试完全相同的事情时,会toDate返回一个Date.

我使用 Node.js 0.8.25 在同一台机器上运行 REPL 和脚本。Moment.js 是 2.3.1 版本。

知道什么可能导致这个问题吗?

4

2 回答 2

3

您应该可以一步完成:

moment().add('years', 99).toISOString()

但我认为主要问题是评论中的dystroy。

于 2013-10-27T23:05:35.223 回答
-1

你有没有尝试过类似的东西:

expirationDate = new Date(moment().add('years', 99));?

这样,您将获得一个日期实例,我尝试了 MomentJs 的 .toDate() 但它不符合我的需求。

于 2015-03-13T09:59:37.790 回答