IOS/Safari中的new Date()的格式化坑

作者: haibao 分类: 案例,笔记 发布时间: 2017-12-19 11:33
世上最难的两件事: 把自己的思想装进别人的脑袋, 把别人的钞票装进自己的口袋 — XXX都做到了!

先看一个要实现的场景:

如图:

一般正常情况使用date都是, new Date()或者自己封装一个格式化日期方法;

举个栗子 代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
Date.prototype.format = function(fmt) {
    var o = {
               "M+" : this.getMonth()+1,                 //月份
               "d+" : this.getDate(),                    //日
               "h+" : this.getHours(),                   //小时
               "m+" : this.getMinutes(),                 //分
               "s+" : this.getSeconds(),                 //秒
               "q+" : Math.floor((this.getMonth()+3)/3), //季度
               "S"  : this.getMilliseconds()             //毫秒
            };
     if(/(y+)/.test(fmt)) {
          fmt = fmt.replace(RegExp.$1, (this.getFullYear()+"").substr(4 - RegExp.$1.length));
     }
     for(var k in o) {
          if(new RegExp("("+ k +")").test(fmt)){
              fmt = fmt.replace(RegExp.$1, (RegExp.$1.length==1) ? (o[k]) : (("00"+ o[k]).substr((""+ o[k]).length)));
          }
     }
     return fmt;
};
 
//这里假如接口返回的日期不是时间戳,而是'2017-12-18 15:00:48'这种;
var monthArr = ['一月','二月','三月','四月','五月','六月','七月','八月','九月','十月','十一月','十二月'];
var currentDate = new Date('2017-12-18 15:00:48').getTime();
var date = new Date(currentDate);
var day = date.format("dd"); 
var month = date.format('MM');
console.log('格式化后的日期是:'+ day + ' / ' + monthArr[parseInt(month)-1]);

以上代码经测试,在Chrome和Firefox下都没有问题。

但是在safari下提示如图:

查阅了MDN, 解决方法如下:
将:

1
var currentDate = new Date('2017-12-18 15:00:48').getTime();

改为:

1
var currentDate = new Date('2017-12-18 15:00:48'.replace(/\s/, 'T')).getTime();

此问题即可解决。

当然也有其他的解决方法,比如:momentjs

参考文档:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/parse

https://stackoverflow.com/questions/4310953/invalid-date-in-safari

本文地址:[IOS/Safari中的new Date()的格式化坑],如没有标注转载,均为原创,转载请保留出处和链接,欢迎分享 谢谢。

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

6 条评论
  • 趣头条

    2018/02/07 下午 7:03

    鸟儿叫,花儿笑,一年一季春来到!

  • 屌炸天

    2018/02/05 下午 4:56

    新春佳节到。祝好!祝好!

  • xing1982

    2018/02/04 下午 2:44

    不错不错!内容感觉好极了!

  • 1163848899

    2018/01/27 下午 8:06

    博客还真是个好东西!

  • 套图网

    2018/01/08 上午 9:43

    毫无疑问,这个是要支持的!

  • 八达网

    2018/01/02 下午 3:06

    新年好呀,新年好呀,祝福博主新年好!

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>