为啥 setDate() 在 nodejs 中以毫秒为单位给出最终日期? [复制]

Posted

技术标签:

【中文标题】为啥 setDate() 在 nodejs 中以毫秒为单位给出最终日期? [复制]【英文标题】:Why setDate() is giving the final date in milliseconds in nodejs? [duplicate]为什么 setDate() 在 nodejs 中以毫秒为单位给出最终日期? [复制] 【发布时间】:2021-05-02 14:14:55 【问题描述】:

我试图将日期保存到下个月。为此,我首先将月份设置为接下来的 30 天。但它以毫秒为单位给出的最终输出日期。 我希望严格采用 GMT 格式的日期。

我能做些什么呢?

var snm = new Date();
snm = snm.setDate(snm.getDate() + 30);
                console.log("snm = "+ snm);

【问题讨论】:

@appleapple 没有。 OP 问题是您在表达式中使用日期。如果要将日期作为字符串,请使用 .toLocaleString() 或其他类似 API。另外,如果你想去下个月,打电话.getMonth()加1是有意义的。 您不需要重新分配snmsnm = snm.setDate 这里好像错了 了解 Date 实例不是“采用”除 Date 实例之外的任何特定格式。以任何方式将日期转换为字符串是实现任何格式的方式,但它与对象的内在性质无关。 set 方法返回修改后的时间值,而不是调用该方法的日期。您必须分两步完成:snm.setDate(snm.getDate() + 30); console.log(snm.toISOString()); 或者您可以创建一个新的 Date 对象(浪费,但不多):new Date(snm.setDate(snm.getDate() + 30)).toISOString() 哦,GMT 不是一种格式,它是一个时区。也许您的意思是 ISO 8601 格式,例如“2021-01-28T23:56:08.062Z”。 【参考方案1】:

试试这个

var snm = new Date();
snm.setDate(snm.getDate() + 30)
console.log("snm = "+ snm.toString());

【讨论】:

我想要这样的 GMT 格式:Tue Jan 26 2021 13:14:15 GMT+0530(印度标准时间) 更改了代码...使用上面的 纯代码答案没有帮助。一个好的答案应该解释为什么 OP 有问题以及您的代码如何修复它。

以上是关于为啥 setDate() 在 nodejs 中以毫秒为单位给出最终日期? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

在 Nodejs 中以 GraphQL 类型分配 JSON

如何在NodeJS中以单行控制台日志格式制作实时时钟[重复]

在 Nodejs 中以编程方式连接到 Mongodb Amazon EC2 实例

JWT nodejs / express - 无效签名

为啥字符串在Java中以“”开头? [复制]

为啥我不能在 TypeScript 中以这种方式只读数组?