角度/JavaScript-奇数日期行为
我意识到在JavaScript中日期可能非常棘手,但是我遇到了一个有点奇怪的问题 希望有人能对此有所了解 我从webshim datepicker获取日期输入并执行以下操作角度/JavaScript-奇数日期行为,javascript,angularjs,date,Javascript,Angularjs,Date,我意识到在JavaScript中日期可能非常棘手,但是我遇到了一个有点奇怪的问题 希望有人能对此有所了解 我从webshim datepicker获取日期输入并执行以下操作 var date = $scope.date; console.log('date', date); date.setTime(date.getTime() + date.getTimezoneOffset()*60*1000
var date = $scope.date;
console.log('date', date);
date.setTime(date.getTime() + date.getTimezoneOffset()*60*1000);
console.log('after set time', date);
它将沿着
date "2025-06-19T00:00:00.000Z"
after set time "2025-06-19T12:00:00.000Z"
注意时间不同,但仍然是同一天(19日)
但是,如果我切换到另一个视图并返回到此输入并再次记录输入(与上面的日期不同),我会得到如下结果
date "2025-10-22T12:00:00.000Z"
after set time "2025-10-23T00:00:00.000Z"
时间也如预期的那样改变了,但这次是休息一天(23日对22日)
如果我再次更改视图并再次返回,则记录的输出将恢复为当天的输出
基本上,每次切换视图时都会切换此行为。这是一个非常不寻常的问题还是一个典型的问题?根据观点,我指的是有角度的部分
<script>
View 1
</script>
<script>
View 2
</script>
视图1
视图2
任何想法或建议都会非常好。基本上,您总是在日期上添加12小时,您应该只在第一次添加12小时,但每次都不是一个不同的日期吗?使用date.setDate,您正在修改datepicker输入值,因此每次代码运行时,您都会在datepicker输入上添加12小时。创建一个与输入值相同的新日期,并增加12小时,你能举个例子吗?我已经尝试了您的建议,但似乎没有起作用,尽管我可能只是做得不正确。var date=$scope.date;var dateCopy=新日期(Date.getTime()+Date.getTimezoneOffset()*60*1000);console.log(dateCopy)