【问题标题】:Returning Invalid date in IOS for angularjs project when date is from different timezone当日期来自不同时区时,在 IOS 中为 angularjs 项目返回无效日期
【发布时间】:2017-06-05 08:56:30
【问题描述】:

我正在开发一个 ionic angularJS 项目。

从数据库返回的日期类似于“2016-10-12T00:00:00.000+0200”(UTC+2 时区)

我通过如下更改值将其设置为日期字段(输入类型日期)。

 $scope.datevalue = new Date($scope.datevalue); 

上述语句在 android 中工作并返回印度时区为“Wed Oct 12, 2016, 03:30:00 GMT+0530 (India Standard Time)” 但不适用于 IOS 并返回“无效日期”

你能给我一个解决方案吗?

【问题讨论】:

  • 您可以使用 Moment js momentjs.com 在 iOS 中解决日期问题

标签: javascript ios angularjs iphone date


【解决方案1】:

您需要为 iOS 指定自定义日期格式化程序。在斯威夫特:

let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "y-M-d'T'hh:mm:ss.SSSZ"
let date = dateFormatter.date(from: "2016-10-12T00:00:00.000+0200")
print(date) //Prints in UTC: Optional(2016-10-11 22:00:00 +0000)

【讨论】:

  • 你能告诉我这里的“来自”是什么吗?让日期 = dateFormatter.date(来自:“2016-10-12T00:00:00.000+0200”)
【解决方案2】:

您可以使用moment.js 来解决此问题。首先在你的js库中导入moment.js,然后编写如下代码。

            if($scope.datevalue !== null){
                $scope.datevalue =  new Date(moment($scope.datevalue));
            }

它应该可以工作

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-10-27
    • 1970-01-01
    • 2017-12-26
    • 1970-01-01
    • 2021-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多