gpt4 book ai didi

javascript - 为什么当我选择日期(使用 HTML5 日期)时,Javascript 显示的日期与日期选择器中的日期不同?

转载 作者:行者123 更新时间:2023-12-03 07:47:14 25 4
gpt4 key购买 nike

这是骗子:http://plnkr.co/edit/c7N78xvGa4WYDehVZjD6?p=preview

<body ng-app="dateInputExample">
<script>
angular.module('dateInputExample', [])
.controller('DateController', ['$scope', function($scope) {
$scope.example = {
value: new Date(2013, 9, 22)
};
}]);
</script>
<form name="myForm" ng-controller="DateController as dateCtrl">
<label for="exampleInput">Pick a date in 2013:</label>
<input type="date" id="exampleInput" name="input" ng-model="example.value"
placeholder="yyyy-MM-dd" min="2013-01-01" max="2013-12-31" required />
<div role="alert">
<span class="error" ng-show="myForm.input.$error.required">
Required!</span>
<span class="error" ng-show="myForm.input.$error.date">
Not a valid date!</span>
</div>
<tt>value = {{example.value | date: "yyyy-MM-dd"}}</tt><br/>
<tt>myForm.input.$valid = {{myForm.input.$valid}}</tt><br/>
<tt>myForm.input.$error = {{myForm.input.$error}}</tt><br/>
<tt>myForm.$valid = {{myForm.$valid}}</tt><br/>
<tt>myForm.$error.required = {{!!myForm.$error.required}}</tt><br/>

{{example.value}}
</form>
</body>
</html>

这是输出:

enter image description here

为什么日期值与日期选择器上显示的值不同?如何解释这个日期?

"2013-10-21T16:00:00.000Z"

最佳答案

日期选择器正在选择您本地时区的日期。也就是说,选择日期后,它会设置为本地时间的午夜。显示日期时,它以 UTC 格式显示(这就是末尾的“Z”所代表的含义)。您的本地时区似乎比 UTC 早 8 小时(俄罗斯?),因此您的午夜时间是前一天 UTC 的 16:00。换句话说,它们都是完全相同的时间 - 只是以不同的时区表示。

显示日期的 toString() 方法(您隐式调用该方法,因为您没有指定应如何显示日期)以您看到的神秘格式显示 UTC 日期那里。它被设计为机器可读性高于人类可读性。要显示本地时区的日期(并以更好的格式),请使用 toDateString() 方法显示日期:

{{example.value.toDateString()}}

现在日期将匹配。

关于javascript - 为什么当我选择日期(使用 HTML5 日期)时,Javascript 显示的日期与日期选择器中的日期不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35156182/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com