基本上,我需要计算一个(非常长寿的)cookie的到期日期,所以我想现在+ 99年。因为使用像Moment.js这样的库比使用本机JavaScript更容易,我正在做:
var expirationDate = moment().add('years', 99);
但是我需要一个JavaScript Date
对象并在其上调用toUTCString
函数来获取cookie的格式正确的字符串。因此我在做:
var expirationDate = m().add('years', 99).toDate().toUTCString();
现在,发生了一些非常奇怪的事情。当我在Node.js shell中运行这一行时,一切都很好。但是如果我从脚本中运行它,它就会失败。错误消息是
TypeError:Object Mon,21 Oct 2112 07:34:34 GMT没有方法'toUTCString'
这是正确的,因为toDate
返回的 thing 不是Date
的实例,而只是一个普通的旧对象。奇怪的是,当我在Node.js REPL中尝试完全相同的事情时,toDate
返回Date
的实例。
我在同一台机器上使用Node.js 0.8.25同时运行REPL和脚本。 Moment.js是版本2.3.1。
知道可能导致此问题的原因吗?
答案 0 :(得分:3)
您应该只需一步即可完成此操作:
moment().add('years', 99).toISOString()
但我认为主要问题是通过评论中的破坏来确定的。
答案 1 :(得分:-1)
expirationDate = new Date(moment().add('years', 99));
?
这样,你会得到一个约会的日期,我尝试了MomentJs的.toDate(),但它不能满足我的需求。