Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/445.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
角度/JavaScript-奇数日期行为_Javascript_Angularjs_Date - Fatal编程技术网

角度/JavaScript-奇数日期行为

角度/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

我意识到在JavaScript中日期可能非常棘手,但是我遇到了一个有点奇怪的问题

希望有人能对此有所了解

我从webshim datepicker获取日期输入并执行以下操作

                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)