在某些情况下,Javascript 在执行 .setDate(currentDate.getDate() - 30) 时获取日期错误

阿比纳夫·穆杜切蒂
var fromDate = new Date();
var toDate = new Date();
fromDate.setDate(fromDate.getDate() - 1);
toDate.setDate(fromDate.getDate() - 30);

现在,当我打印 formDate 时,正在打印 Date 2018-07-31T05:33:46.399Z

现在打印 toDate 时,打印日期 2018-08-01T05:33:46.399Z

当前日期是日期 2018-08-01T06:00:46.921Z

所以我想获得昨天的日期和昨天的日期前 30 天如何在不使用时刻的情况下获得以前的日期

31piy

setDate()相对设置日期。第一个片段在您将日期设置为 时起作用0,这会将上个月的最后一个日期设置为日期对象。根据文档

如果 dayValue 超出该月的日期值范围,setDate()将相应地更新 Date 对象。例如,如果为 提供 0 dayValue,则日期将设置为上个月的最后一天。

但是在第二个代码段中,您将日期设置为1(31 - 30),这不会相对设置日期,但绝对设置,因为 1 是有效日期,并且不在范围之外。所以,你最终设定日期1toDate

正确的方法是从 中减去 31(假设您想要 7 月 1 日)toDate,这会创建一个相对值 (1 - 31 == -30),从而正确设置日期。

var formDate = new Date();
var toDate = new Date();
formDate.setDate(formDate.getDate() - 1);
toDate.setDate(toDate.getDate() - 31);

console.log(formDate, toDate);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

JavaScript的getDate返回错误的日期

使用getDate在javascript中设置日期

在不执行获取的情况下获取获取响应状态

我使用currentddate.setDate(currentddate.getDate()+ 30)从今天起增加30天时的数字

仅在某些情况下执行SELECT语句

调试时 Javascript 代码正确执行,但在浏览器开发工具未运行的情况下无法运行

Javascript 获取 30 天前的日期

Javascript日期-getDate在不同的年份给出不同的结果

getDate 返回错误值

使用 GetDate 的 Sql 错误

jQuery一键式执行,但在某些情况下可多次执行

在没有浏览器的情况下执行JavaScript?

javascript函数在不调用函数的情况下执行

本月之前的Javascript getDate()

在JavaScript中添加日期时,新的Date.getDate()无法正常工作

当应用程序在后台打开超过30分钟时,Cordova会执行某些操作

ResultSet.getDate()返回错误的日期

致命错误:超过30秒的最大执行时间

比较日期时无法使getDate()工作

在某些情况下无法获取表单ID的值

在代码中没有AsyncTask的情况下,在android.os.AsyncTask $ 3.done执行doInBackground()时发生错误

在某些情况下,row_number()得到错误的结果

可变参数函数在某些情况下认为顺序错误

在某些情况下,分段错误(核心已转储)

在某些情况下使用组件时,Webapp冻结

可以在不获取GIL的情况下并行执行哪些操作?

如何在不执行mysql db query的情况下从缓存中获取数据

Linq to SQL,如何在不执行查询的情况下获取单个元素?

黄瓜:在每种情况下如何获取已执行步骤的列表?