原文地址:https://segmentfault.com/a/1190000021557635
作者:Fw恶龙
本文首发于:思否
1. 需求
页面显示倒计时天数(如:当前时间距离2020-09-01 23:59:59还有几天)
2. 遇到的坑
在PC端开发完毕没有问题,上真机测试时发现,安卓也没问题,但在iOS无法正常计算时间。
3. 问题
研究了一段时间发现是由于iOS的WebKit内核无法友好的处理时间字符串格式,也不能说是它的BUG。各种时间字符串格式可以查看以下栗子:
可以用iPhone复现该问题。
4. 解决
改成 2020/09/01 23:59:59 这种格式即可。
5. 日期字符串格式
RFC2822 标准日期字符串
YYYY/MM/DD HH:MM:SS ± timezon(时区用4位数字表示)
// eg. 1997/01/01 00:00:00+0800
ISO 8601标准日期字符串
YYYY-MM-DDThh:mm:ss ± timezone(时区用HH:MM表示)
1997-01-01T00:00:00Z
// “Z”表示UTC标准时区,即"00:00",所以这里表示零时区的`1997年1月1日00时00分00秒`
// 转换成位于东八区的北京时间则为`1997年1月1日08时00分00秒`
1997-01-01T00:00:00+01:00
// 表示东一区的1997年1月1日01时00秒00分,转换成UTC标准时间的话是1997-01-01T00:00:00Z
注
- 在未指定时区的前提下,对于只精确到day的日期字符串,RFC 2822返回结果是以当前时区的零点为准,而ISO8601返回结果则会以UTC时间的零点为标准进行解析;
- 但是上一条是ES5的标准而已,在ES6里这两种形式都会变成当前时区的零点为基准;
- 最后,建议使用RFC2822格式;
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。