基本上,我需要计算一个(非常长寿的)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 版本。
知道什么可能导致这个问题吗?