js时间格式化函数(兼容IOS)

 * 时间格式化
    * @param  {Object} dateObj 时间对象
    * @param  {String} fmt 格式化字符串
    */
   dateFormat(dateObj, fmt) {
     let date;
     if (this.isString(dateObj))
     {
       date = this.strToDate(dateObj)
     } else if (this.isDate(dateObj))
     {
       date=dateObj
     }
     else{
       return ""
     }
     var o = {
       "M+": date.getMonth() + 1, //月份         
       "d+": date.getDate(), //
       "h+": date.getHours() % 12 == 0 ? 12 : date.getHours() % 12, //小时         
       "H+": date.getHours(), //小时         
       "m+": date.getMinutes(), //
       "s+": date.getSeconds(), //
       "q+": Math.floor((date.getMonth() + 3) / 3), //季度         
       "S": date.getMilliseconds() //毫秒         
     };
     var week = {
       "0": "日",
       "1": "一",
       "2": "二",
       "3": "三",
       "4": "四",
       "5": "五",
       "6": "六"
     };
     if (/(y+)/.test(fmt)) {
       fmt = fmt.replace(RegExp.$1, (date.getFullYear().toString() + "").substr(4 - RegExp.$1.length));
     }
     if (/(E+)/.test(fmt)) {
       fmt = fmt.replace(RegExp.$1, ((RegExp.$1.length > 1) ? (RegExp.$1.length > 2 ? "星期" : "周") : "") + week[date.getDay().toString() + ""]);
     }
     for (var k in o) {
       if (new RegExp("(" + k + ")").test(fmt)) {
         fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k].toString()) : (("00" + o[k].toString()).substr(("" + o[k].toString()).length)));
       }
     }
     return fmt;
   }
 /**
     * 字符串转换为时间
     * @param  {String} src 字符串
     */
    strToDate(dateObj){
      dateObj = dateObj.replace(/T/g, ' ').replace(/\.[\d]{3}Z/, '').replace(/(-)/g, '/')
      if (dateObj.indexOf(".")>0)dateObj = dateObj.slice(0, dateObj.indexOf("."))

     return new Date(dateObj)
    }

使用方法:

第一个参数是个obj对象,当前只能是时间对象或者是时间字符串

第二个参数是格式化字符串,和C# 格式化规则一样,除了周的格式化,这里使用了'E'来格式化周几

这里是页面调用例子:

app.Tools.dateFormat("yyyy/MM/dd") 结果 2017/07/19

app.Tools.dateFormat("yyyy/MM/dd HH:mm:ss") 结果 2017/07/19 10:09:11

app.Tools.dateFormat("yyyy/MM/dd EE HH:mm:ss") 结果 2017/07/19 周三 10:09:11

其他的就不一一举例了,可以参考C#格式化的标准

转载于:https://www.cnblogs.com/daxiongblog/p/7205547.html

  • 0
    点赞
  • 0
    评论
  • 1
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

表情包
插入表情
评论将由博主筛选后显示,对所有人可见 | 还能输入1000个字符
©️2021 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值