Javascript日期解析在Iphone上

Mor*_*ten 25 javascript iphone date mobile-safari mobile-webkit

我正在开发一个针对移动设备的离线可用的Javascript网站.一个这样的移动设备是IPhone.

我正在尝试从REST API(JSON对象的成员)解析日期.我正在使用

Date.parse("2010-03-15 10:30:00");
Run Code Online (Sandbox Code Playgroud)

这适用于Android设备,但在iPhone上它只是提供无效的日期.

我如何格式化我的日期字符串,以便它可以被IPhone解析?

And*_*y E 83

并非所有浏览器都支持相同的日期格式.最好的方法是将字符串拆分为分隔符(-, :),然后将每个结果数组项传递给Date构造函数:

var arr = "2010-03-15 10:30:00".split(/[- :]/),
    date = new Date(arr[0], arr[1]-1, arr[2], arr[3], arr[4], arr[5]);

console.log(date);
//-> Mon Mar 15 2010 10:30:00 GMT+0000 (GMT Standard Time)
Run Code Online (Sandbox Code Playgroud)

这在所有浏览器中都是一样的.

  • 可能很高兴为你的正则表达式添加`T`以支持ISO 8601 (8认同)
  • TY对此有很大帮助.无法在iOS上进行safari来解析iso8601.这无处不在. (2认同)

Hen*_*nry 6

对于 UTC/GMT 时间,您可以尝试:

    var arr = "2014-10-27T16:05:44+0000".split(/[\-\+ :T]/);

    var date = new Date();
    date.setUTCFullYear(arr[0]);
    date.setUTCMonth(arr[1] - 1);
    date.setUTCDate(arr[2]);
    date.setUTCHours(arr[3]);
    date.setUTCMinutes(arr[4]);
    date.setUTCSeconds(arr[5]);
Run Code Online (Sandbox Code Playgroud)

使用时,日期对象将显示在正确的本地时区中。