知识大全 Javascript日期格式化函数性能对比
Posted 知
篇首语:自然界没有风风雨雨,大地就不会春华秋实。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Javascript日期格式化函数性能对比相关的知识,希望对你有一定的参考价值。
Javascript日期格式化函数性能对比 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
最近开发的软件中需要用到日志功能 其中有一个重要功能是显示日期和时间 于是网上搜了一把 搜到大量的日期格式化函数 不过比较了下 感觉代码都不够优雅 而且性能都不给力
对线上一些代码进行了评测 结果如下
测试代码如下 分别对格式化函数进行 万次计算
代码如下var start = new Date() getTime();
var date = new Date();
for(var i = ;i< ;i++)
date format ( yyyy MM dd hh:mm:ss );
console log(new Date() getTime() start);
函数
代码如下// 对Date的扩展 将 Date 转化为指定格式的String
// 月(M) 日(d) 小时(h) 分(m) 秒(s) 季度(q) 可以用 个占位符
// 年(y)可以用 个占位符 毫秒(S)只能用 个占位符(是 位的数字)
// 例子
// (new Date()) Format("yyyy MM dd hh:mm:ss S") ==> : :
// (new Date()) Format("yyyy M d h:m:s S") ==> : :
Date prototype format = function (fmt) //author: meizz
var o =
"M+": this getMonth() + //月份
"d+": this getDate() //日
"h+": this getHours() //小时
"m+": this getMinutes() //分
"s+": this getSeconds() //秒
"q+": Math floor((this getMonth() + ) / ) //季度
"S": this getMilliseconds() //毫秒
;
if (/(y+)/ test(fmt)) fmt = fmt replace(RegExp $ (this getFullYear() + "") substr( RegExp $ length));
for (var k in o)
if (new RegExp("(" + k + ")") test(fmt)) fmt = fmt replace(RegExp $ (RegExp $ length == ) ? (o[k]) : ((" " + o[k]) substr(("" + o[k]) length)));
return fmt;
测试三次
成绩 毫秒
成绩 毫秒
成绩 毫秒
平均 毫秒
函数
代码如下/** * 对Date的扩展 将 Date 转化为指定格式的String * 月(M) 日(d) 小时(h) 小时(H) 分(m) 秒(s) 周(E) 季度(q)
可以用 个占位符 * 年(y)可以用 个占位符 毫秒(S)只能用 个占位符(是 位的数字) * eg: * (new
Date()) pattern("yyyy MM dd hh:mm:ss S")==> : :
* (new Date()) pattern("yyyy MM dd E HH:mm:ss") ==> 二 : :
* (new Date()) pattern("yyyy MM dd EE hh:mm:ss") ==> 周二 : :
* (new Date()) pattern("yyyy MM dd EEE hh:mm:ss") ==> 星期二 : :
* (new Date()) pattern("yyyy M d h:m:s S") ==> : :
*/
Date prototype format =function(fmt)
var o =
"M+" : this getMonth()+ //月份
"d+" : this getDate() //日
"h+" : this getHours()% == ? : this getHours()% //小时
"H+" : this getHours() //小时
"m+" : this getMinutes() //分
"s+" : this getSeconds() //秒
"q+" : Math floor((this getMonth()+ )/ ) //季度
"S" : this getMilliseconds() //毫秒
;
var week =
" " : "/u e "
" " : "/u e "
" " : "/u e c"
" " : "/u e "
" " : "/u db"
" " : "/u e "
" " : "/u d"
;
if(/(y+)/ test(fmt))
fmt=fmt replace(RegExp $ (this getFullYear()+"") substr( RegExp $ length));
if(/(E+)/ test(fmt))
fmt=fmt replace(RegExp $ ((RegExp $ length> ) ? (RegExp $ length> ? "/u f/u f" : "/u ") : "")+week[this getDay()+""]);
for(var k in o)
if(new RegExp("("+ k +")") test(fmt))
fmt = fmt replace(RegExp $ (RegExp $ length== ) ? (o[k]) : ((" "+ o[k]) substr((""+ o[k]) length)));
return fmt;
测试三次
成绩 毫秒
成绩 毫秒
成绩 毫秒
平均 毫秒
本着完美主义的态度 自己重新造了个更好的轮子 分享给需要的同学们 代码如下
代码如下/**
* 对日期进行格式化
* @param date 要格式化的日期
* @param format 进行格式化的模式字符串
* 支持的模式字母有
* y:年
* M:年中的月份( )
* d:月份中的天( )
* h:小时( )
* m:分( )
* s:秒( )
* S:毫秒( )
* q:季度( )
* @return String
* @author yanis wang@gmail
*/
function dateFormat(date format)
if(format === undefined)
format = date;
date = new Date();
var map =
"M": date getMonth() + //月份
"d": date getDate() //日
"h": date getHours() //小时
"m": date getMinutes() //分
"s": date getSeconds() //秒
"q": Math floor((date getMonth() + ) / ) //季度
"S": date getMilliseconds() //毫秒
;
format = format replace(/([yMdhmsqS])+/g function(all t)
var v = map[t];
if(v !== undefined)
if(all length > )
v = + v;
v = v substr(v length );
return v;
else if(t === y )
return (date getFullYear() + ) substr( all length);
return all;
);
return format;
使用方法
dateFormat( yyyy MM dd hh:mm:ss );
dateFormat(new Date() yyyy MM dd hh:mm:ss );
测试三次
成绩 毫秒
成绩 毫秒
成绩 毫秒
平均 毫秒
cha138/Article/program/Java/JSP/201311/20250相关参考
asp教程格式化时间函数 本款函数可以根据用户给定的时间日期进行年月日时分秒等只要用户给定不同的style参数就可以显示不同风格的时间日期 functionformattime(testtim
本文提供vbscript时间函数的概要介绍可应对一般应用具体特殊需求可进一步搜索 date()获取日期格式 time()获取时间格式:: now()获取日期和时间格式:: d=date()
TRUNC(fordates) TRUNC函数为指定元素而截去的日期值 其具体的语法格式如下 TRUNC(date[fmt]) 其中 date一个日期值 fmt日期格式该日期将由指定的
知识大全 JavaScript:new 一个函数和直接调用函数的区别分析
JavaScript:new一个函数和直接调用函数的区别分析 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看
知识大全 如何使用Javascript正则表达式来格式化XML内容
如何使用Javascript正则表达式来格式化XML内容 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下
常用的Javascript函数 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! /********
格式化json日期格式对象 调用toDate(timeString) /** *时间对象的格式化 */ Dateprototypeformat=function(format) /*
javascript读写Cookie函数 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 日前看到
判断Javascript是否存在函数 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! window
使用Javascript的数学函数 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!在JavaScri