javascript - angular js日期输入格式

标签 javascript date datetime angularjs angularjs-directive

<分区>

我正在尝试在 AngularJS 应用程序中创建日期输入,但在格式化日期时遇到了问题。我创建了一个 plnkr 来说明我的问题:http://plnkr.co/edit/LbQIPG?p=preview

我的问题是,无论我从 SQL Server 收到的日期格式如何(我在 plnkr 2013-07-11T00:00:00.000 和 2013-07-11 中放置了两个示例日期),Javascript 日期对象正在应用时区代码并通过显示 07/10/2013 而不是 7/11/2013 的正确日期来影响我在输入字段中的日期显示。我只想要实际从数据库返回的日期,我根本不想应用时区,只有日期与我相关,而不是时间。我是否需要创建自定义指令以通过获取 ISO 日期时间然后将该日期字符串分配给我的输入来准确显示我想要的日期?或者有没有更好的解决办法。这是我认为可能需要用来在指令中格式化我的日期的代码示例:

var newDate =  $scope.dataBaseData.myDate.toISOString();
newDate = new Date(newDate);
$scope.dataBaseData.myDate= new Date((newDate.getUTCMonth() +1) + "/" +newDate.getUTCDate() + "/" + newDate.getUTCFullYear());

最佳答案

Angularjs 对日期和时间使用 ISO8601 规范。如果您希望 JavaScript 正确解析 ISO8601 字符串,则需要转换时区。

但是,如果您像这样创建 Date 对象

$scope.thing1 = new Date(2013, 6, 11);  (month is 0 based.)

这在控制台中被转储为 Thu Jul 11​​ 2013 00:00:00 GMT-0400(东部夏令时)

日期对象会自动选择时区并将正确呈现为 07/11/2013。

关于javascript - angular js日期输入格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18193469/

相关文章:

javascript - 使用 Date() 对象数组创建 X 轴 - D3.js

javascript - 使用 CSS 或 javascript 仅在打印页面而不是浏览器页面中显示内容

javascript - AngularJS:日期输入仅在 Chrome 中显示

windows - 如何在批处理文件中获取一年中的某一天

javascript - 如何在 JavaScript 中迭代对象?

javascript - 如何防止 jQuery Flash 移动文本?

php - 格式化 DateTime Diff 以防止在 PHP 中显示 0 年 0 个月

date - 比较 Google 电子表格中的日期

php - 仅在 mysql 中的特定日期从表中获取值

Javascript 比较日期和时间