javascript - 如何使用 Angular 将 UTC 时间转换、显示和编辑为浏览器本地时间?

标签 javascript angularjs

这是一个显示我在 UTC 时间中获得的日期的简单示例。我不知道如何使用 Angular 在浏览器的本地时间显示它。另外,如果它可以在更改时以 UTC 形式存储在 scope.StartDateTime 中,那就太酷了。我确信到目前为止我还没有找到某种转换方法。

<div ng-app="">
  <div ng-controller="MyCtrl">
    <input type="datetime" ng-model="StartDateTime">
</div>

function MyCtrl($scope) {
  $scope.StartDateTime = '2014-07-04T19:31:34';//starts with UTC time
 }

最佳答案

由于您已经有了可以通过 JS Date 构造函数轻松解析的格式,因此我建议您首先通过 Date 对象运行该值,然后导出(例如通过 .toString())。以下示例(在 NodeJS 中完成)说明了我的观点:

> (new Date("2014-07-04T19:31:34")).toString() '2014 年 7 月 4 日星期五 14:31:34 GMT-0500 (CDT)'

Date 对象将为您处理本地化,并毫无问题地接受您的 UTC 时间。如果您希望 UTC 时间恢复,请使用 .toISOString()

您只需使用 Date(...) 构造函数包装变量赋值即可得到您想要的结果:

function MyCtrl($scope) {
    $scope.StartDateTime = new Date('2014-07-04T19:31:34'); // starts with UTC time
}

关于javascript - 如何使用 Angular 将 UTC 时间转换、显示和编辑为浏览器本地时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24814341/

相关文章:

javascript - Angular Tour 指令问题

javascript - UI 选择的对象源

javascript - 纯 JavaScript 图像处理

javascript - 将数据传递给主干 View 中的事件处理程序

javascript - JQuery remove() 在 IE 中不起作用?

javascript - 在 javascript 中从 Wordpress REST API 正确设置数组

javascript - qunit - 测试异常消息?

AngularJS 和 Bootstrap 模态表单。为什么在取消时提交数据

angularjs - 在 ng-repeat 中使用 orderBy 自定义订单

javascript - 使用 Firebase 登录的 Facebook API 调用