JavaScript时间格式化工具

通过修改Date原型链来添加时间格式化函数

平常时间使用时间格式化使用的比较多,已经存在的有moment.js等优秀的时间格式化库,但这些库对于我简单的使用场景显得笨重不适用,自己敲苦于每次实际使用的时候去重复的造轮子。故在此上传一个之前封装的格式化组件。

主要代码

Date.prototype.Format = function (fmt) { // author: meizzvar 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
}

实际使用

只需要在项目初始化的时候去执行引入一次改方法,就可以了。

实际使用

let date = new Date() //Sun Jun 28 2020 23:14:47 GMT+0800 (中国标准时间)
date.Format('yyyy年MM月dd日 hh:mm:ss') // "2020年06月28日 23:14:47"

实现原理

通过正则的替换将输入的模版串中的值用时间进行替换。需要注意以下几点:

  1. String.prototype.substr mdn str.substr(start[, length])

    • 当传入一个值时,若为正值表示以序号为起点向后截取,为负值就从后向前

    • start为正, length有效时从 start位开始向后截取length字符。start的正负代表方向

      var str = "abcdefghij"
      console.log("(-3): "     + str.substr(-3));    // (-3): hij
      console.log("(1): "      + str.substr(1));     // (1): bcdefghijconsole.log("(1,2): "    + str.substr(1,2));   // (1,2): bc
      console.log("(-3,2): "   + str.substr(-3,2));  // (-3,2): hiconsole.log("(-20, 2): " + str.substr(-20,2)); // (-20, 2): ab
      console.log("(20, 2): "  + str.substr(20,2));  // (20, 2):
      
  2. RegExp.$1 - $9 表示包含括号子串匹配的正则表达式的静态和只读属性。

    var re = /(\w+)\s(\w+)/;
    var str = 'John Smith';
    str.replace(re, '$2, $1'); // "Smith, John"
    RegExp.$1; // "John"
    RegExp.$2; // "Smith"
    

JavaScript时间格式化工具函数相关推荐

  1. JavaScript时间日期函数

    //随机数生成器 Math.random() 装换为整数 parseInt() 日期时间函数(需要用变量调用): var b = new Date(); //获取当前时间 b.getTime() // ...

  2. javascript时间处理函数

    当前时间: var timestamp = Date.parse(new Date()); timestamp = timestamp / 1000; 返回的是毫秒,后三位为0 var timesta ...

  3. javascript时间格式format函数,js日期格式化函数

    我在之前有一篇文章,写的是"javascript时间戳函数",大家可以看一下,记录了js时间戳的转换,今天主要写的函数式日期格式化函数,我们有时候调用的new Date()不是格式 ...

  4. 如何用JavaScript的回调函数做出承诺

    by Adham El Banhawy 由Adham El Banhawy 如何用JavaScript的回调函数做出承诺 (How to make a Promise out of a Callbac ...

  5. oracle 日期 extract,ORACLE——EXTRACT() 截取日期时间的函数使用

    1.截取日期的 年: --使用方法 EXTRACT(YEAR FROM DATE) SQL> SELECT EXTRACT( YEAR FROM SYSDATE ) FROM DUAL; --结 ...

  6. Json 时间 转换为 Javascript 时间 Date Jquery 调用WCF

    "/Date(1232035200000)/" 怎么转换成 javascript 的 Date 对象 做法:new Date(+/\d+/.exec(value)[1]); val ...

  7. Javascript学习之函数(function)

    http://www.cnblogs.com/royalroads/p/4418587.html 在JS中,Function(函数)类型实际上是对象;每个函数都是Function类型的实例,而且都与其 ...

  8. php计算两个日期之间的小时数,PHP_php 计算两个时间戳相隔的时间的函数(小时),这个是可以具体到小时的php代 - phpStudy...

    php 计算两个时间戳相隔的时间的函数(小时) 这个是可以具体到小时的php代码 复制代码 代码如下: /* Author: 杨宇 yangyu@sina.cn */ //输入两个时间戳,计算差值,也 ...

  9. JS一个根据时区输出时区时间的函数

    做项目遇到的坑爹问题,需要根据时区获取时区中轴线的时间.为此搜了好久网上都没什么JS的代码描述到这一方面,最后自己翻了下高中地理才写了个函数出来. 此图可以看出来,全球分为了0时区,东西1-11区,第 ...

  10. javascript内置函数是什么

    js内置函数是浏览器内核自带的,不用任何函数库引入就可以直接使用的函数.javascript内置函数一共可分为五类: 1.常规函数 2.数组函数 3.日期函数 4.数学函数 5.字符串函数 第一类:常 ...

最新文章

  1. Ubuntu 基本概念之美元号的意义
  2. matlab 噪声检测,MATLAB应用在基于噪声检测的图像均值去噪法
  3. 打造智慧城市 让市场成为主角
  4. 活动 | 参与《我的 ,2019 不一样》投稿,千元奖品,等你拿!
  5. 【OCP-052】052考试题库一变再变,完整题库收集整理-第15题
  6. 老板让我每天刷群,无奈只能写一个自动群发脚本,不让自己疯狂复制粘贴
  7. 布鲁克大学计算机科学,布鲁克大学计算机科学本科.pdf
  8. 如何通过路由器日志查看路由器是否断网过_如何正确判断宽带问题还是路由器问题?...
  9. angular 9.2升级10.2.2
  10. pandas快速把txt转为excel
  11. mini programe
  12. python选股软件编写
  13. PKI体系(公钥基础设施)
  14. ubuntu 20.04 安装腾讯官方微信
  15. 昆明oracle考试点,Oracle认证考试知识点:修改sid的步骤
  16. Debian11安装MySql8
  17. laravel 框架maatwebsite/excel拓展导出excel增加sheets分页功能
  18. ios系统使用window.open()打开新的页面失效
  19. 灵遁者:写作没有固定的模型,也不会有固定的路
  20. 一文了解DCC-GARCH模型

热门文章

  1. 计算机网络telnet命令作用,全面解析telnet命令
  2. 自由软件之“父”—Richard. M. Stallman
  3. java计算机毕业设计影院资源管理系统演示录像2020源程序+mysql+系统+lw文档+远程调试
  4. CentOS 5.3 安装后的基本软件配置
  5. Google Picasa2
  6. 显示最新的Picasaweb上传
  7. java 死链检测_网站死链检测工具/网站地图生成工具
  8. 华为机试题HJ106
  9. Hive教程(01)- 初识Hive
  10. python自动保存图片_python抓取豆瓣图片并自动保存示例学习