gpt4 book ai didi

angularjs - 输入类型 ="date"给出先前日期作为 AngularJS ng-model 的结果。为什么?

转载 作者:行者123 更新时间:2023-12-04 00:10:32 25 4
gpt4 key购买 nike

当我使用日期选择器选择任何日期时,它会给出前一天的日期。我想知道为什么会这样。还有怎么解决。

<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Example</title>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.5.3/angular.min.js"></script>
</head>
<body ng-app="">
<div>
<form novalidate class="simple-form">
Date: <input type="date" ng-model="user.date" /><br />
</form>
<pre>user = {{user}}</pre>
</div>
</body>
</html>

这是相同的演示。 Demo

谢谢

最佳答案

让我猜猜……你住在英国东部。

来自MDN :

If no arguments are provided, the constructor creates a JavaScript Date object for the current date and time according to system settings.

当您将日期插入为 2016-04-02 时,它会根据您的本地设置在午夜转换为 Date 对象。

The JavaScript Date object provides uniform behavior across platforms. The time value can be passed between systems to represent the same moment in time and if used to create a local date object, will reflect the local equivalent of the time.

为了提供这种统一的行为,它被转换为 UTC(协调世界时)日期,并在您的日期上附加了有关您的时区的信息。

我住在摩尔多瓦(欧洲),当我在你的 plunker 中插入 2015-05-15 时,我得到 user = {"date":"2015-05-14T21:00: 00.000Z"}。这是因为摩尔多瓦处于 GMT+3 时区,当这里是午夜时,根据 UTC(或 GMT)仍是 5 月 24 日晚上 9 点

但是,如果您可以插入日期时间字符串并提供中午时间,那么您将得到同一天。在此 plunker fork 中插入 2015-05-15T12:00:00并自己检查。

如果您想创建一个没有 Date.UTC 方法的日期:

var d = new Date();
var utcDate = new Date(Date.UTC(d.getFullYear(), d.getMonth(), d.getDate()));

关于angularjs - 输入类型 ="date"给出先前日期作为 AngularJS ng-model 的结果。为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36374703/

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