- 浏览: 209313 次
- 性别:
- 来自: 北京
最新评论
-
Relucent:
likaiyihou51 写道The constructor ...
获得Hibernate Criteria实际SQL的方法 -
likaiyihou51:
The constructor CriteriaJoinWal ...
获得Hibernate Criteria实际SQL的方法 -
likaiyihou51:
大侠 我copy了这个代码 又个问题,能给看一下吗
获得Hibernate Criteria实际SQL的方法 -
haisee:
管用,Firefox和Chrom验证通过。
Javascript设置和获取Textarea的光标位置的方法 -
wanghaosvse:
请问楼主,有没有跟数据库同步的动态加载
带选择框的JS树控件2 (为JSTree再次提速)
DateFormat = (function(){ var SIGN_REGEXP = /([yMdhsm])(\1*)/g; var DEFAULT_PATTERN = 'yyyy-MM-dd'; function padding(s,len){ var len =len - (s+'').length; for(var i=0;i<len;i++){s = '0'+ s;} return s; }; return({ format: function(date,pattern){ pattern = pattern||DEFAULT_PATTERN; return pattern.replace(SIGN_REGEXP,function($0){ switch($0.charAt(0)){ case 'y' : return padding(date.getFullYear(),$0.length); case 'M' : return padding(date.getMonth()+1,$0.length); case 'd' : return padding(date.getDate(),$0.length); case 'w' : return date.getDay()+1; case 'h' : return padding(date.getHours(),$0.length); case 'm' : return padding(date.getMinutes(),$0.length); case 's' : return padding(date.getSeconds(),$0.length); } }); }, parse: function(dateString,pattern){ var matchs1=pattern.match(SIGN_REGEXP); var matchs2=dateString.match(/(\d)+/g); if(matchs1.length==matchs2.length){ var _date = new Date(1970,0,1); for(var i=0;i<matchs1.length;i++){ var _int = parseInt(matchs2[i]); var sign = matchs1[i]; switch(sign.charAt(0)){ case 'y' : _date.setFullYear(_int);break; case 'M' : _date.setMonth(_int-1);break; case 'd' : _date.setDate(_int);break; case 'h' : _date.setHours(_int);break; case 'm' : _date.setMinutes(_int);break; case 's' : _date.setSeconds(_int);break; } } return _date; } return null; } }); })();
//将一个 Date 格式化为日期/时间字符串。
alert( DateFormat.format(new Date(),'yyyy年MM月dd日') );
//从给定字符串的开始分析文本,以生成一个日期。
alert( DateFormat.parse('2010-03-17','yyyy-MM-dd') );
备注:parse方法处理的有点不好,还有点问题。 类似yyyyMMdd之类没有分割的格式无法解析。
评论
13 楼
tom&jerry
2010-08-03
jindw 写道
个人认为两段代码的复杂度是一样的,而且楼主的代码更漂亮.
12 楼
hemuxiao
2010-04-07
为什么要写这么复杂呢?
11 楼
提烟而过
2010-03-23
为什么不用正则表达式,而要写这么复杂呢?
10 楼
Relucent
2010-03-23
其实是写复杂了jindw 的那个写的不错。
大家可以去看看。
大家可以去看看。
9 楼
lucky16
2010-03-22
感觉代码确实多了这么一点点!
8 楼
xiao-qiang163
2010-03-22
写得还可以,好不好是另外一说嘛,首先要鼓励同时也感谢兄弟和大家一起分享你的成功!
7 楼
闫昌盛
2010-03-21
<div class="quote_title">Relucent 写道</div>
<div class="quote_div">
<pre name="code" class="js">DateFormat = {
format : function(date,formatter){
if(date==null){return null;};
if(formatter==null){formatter = "yyyy-MM-dd";};
var year = date.getYear().toString();
var month = (date.getMonth() + 1).toString();
var day = date.getDate().toString();
var hours = date.getHours().toString();
var minutes = date.getMinutes().toString();
var seconds = date.getSeconds().toString();
var yearMarker = formatter.replace(/[^y]/g,'');
var monthMarker = formatter.replace(/[^M]/g,'');
var dayMarker = formatter.replace(/[^d]/g,'');
var hoursMarker = formatter.replace(/[^h]/g,'');
var minutesMarker = formatter.replace(/[^m]/g,'');
var secondsMarker = formatter.replace(/[^s]/g,'');
if(yearMarker.length == 2){year = year.substring(2,4);};
if(monthMarker.length > 1 && month.length==1){month = "0" + month;};
if(dayMarker.length > 1 && day.length==1){day = "0" + day;};
if(hoursMarker.length > 1 && hours.length==1){hours = "0" + hours;};
if(minutesMarker.length > 1 && minutes.length==1){minutes = "0" + minutes;};
if(secondsMarker.length > 1 && seconds.length==1){seconds = "0" + seconds;};
if(yearMarker.length>0){formatter = formatter.replace(yearMarker,year);}
if(monthMarker.length>0){formatter = formatter.replace(monthMarker,month);};
if(dayMarker.length>0){formatter = formatter.replace(dayMarker,day);};
if(hoursMarker.length>0){formatter = formatter.replace(hoursMarker,hours);};
if(minutesMarker.length>0){formatter = formatter.replace(minutesMarker,minutes);};
if(secondsMarker.length>0){formatter = formatter.replace(secondsMarker,seconds);};
return formatter;
},
parse : function(dateString,formatter){
var today = new Date();
if(dateString==null){return today;};
if(formatter==null){formatter = "yyyy-MM-dd";};
var yearMarker = formatter.replace(/[^y]/g,'');
var monthMarker = formatter.replace(/[^M]/g,'');
var dayMarker = formatter.replace(/[^d]/g,'');
var hoursMarker = formatter.replace(/[^h]/g,'');
var minutesMarker = formatter.replace(/[^m]/g,'');
var secondsMarker = formatter.replace(/[^s]/g,'');
var yearPosition = formatter.indexOf(yearMarker);
var yearLength = yearMarker.length;
var year = parseInt( dateString.substring(yearPosition ,yearPosition + yearLength) );
if(isNaN(year)){
year = today.getYear();
}else{
if( yearLength == 2){
if(year < 50 ){
year += 2000;
}else{
year += 1900;
};
};
};
var monthPosition = formatter.indexOf(monthMarker);
var month = parseInt( dateString.substring(monthPosition,monthPosition + monthMarker.length) );
if(isNaN(month)){
month = today.getMonth();
}else{
month-=1
};
var dayPosition = formatter.indexOf(dayMarker);
var day = parseInt( dateString.substring( dayPosition,dayPosition + dayMarker.length ) );
if(isNaN(day)){
day = today.getDate();
}else{
};
var hoursPosition = formatter.indexOf(hoursMarker);
var hours = parseInt( dateString.substring( hoursPosition,hoursPosition + hoursMarker.length ) );
if(isNaN(hours)){
hours = 0;
};
var minutesPosition = formatter.indexOf(minutesMarker);
var minutes = parseInt( dateString.substring( minutesPosition,minutesPosition + minutesMarker.length ) );
if(isNaN(minutes)){
minutes = 0;
};
var secondsPosition = formatter.indexOf(secondsMarker);
var seconds = parseInt( dateString.substring( secondsPosition,secondsPosition + secondsMarker.length ) );
if(isNaN(seconds)){
seconds = 0;
};
return new Date(year,month,day, hours,minutes,seconds);
}
};</pre>
<p> </p>
<p> //将一个 Date 格式化为日期/时间字符串。<br> alert( DateFormat.format(new Date(),'yyyy年MM月dd日') );<br> //从给定字符串的开始分析文本,以生成一个日期。<br> alert( DateFormat.parse('20100317','yyyyMMdd') );</p>
<p> </p>
<p> </p>
</div>
<p> </p>
<div class="quote_div">
<pre name="code" class="js">DateFormat = {
format : function(date,formatter){
if(date==null){return null;};
if(formatter==null){formatter = "yyyy-MM-dd";};
var year = date.getYear().toString();
var month = (date.getMonth() + 1).toString();
var day = date.getDate().toString();
var hours = date.getHours().toString();
var minutes = date.getMinutes().toString();
var seconds = date.getSeconds().toString();
var yearMarker = formatter.replace(/[^y]/g,'');
var monthMarker = formatter.replace(/[^M]/g,'');
var dayMarker = formatter.replace(/[^d]/g,'');
var hoursMarker = formatter.replace(/[^h]/g,'');
var minutesMarker = formatter.replace(/[^m]/g,'');
var secondsMarker = formatter.replace(/[^s]/g,'');
if(yearMarker.length == 2){year = year.substring(2,4);};
if(monthMarker.length > 1 && month.length==1){month = "0" + month;};
if(dayMarker.length > 1 && day.length==1){day = "0" + day;};
if(hoursMarker.length > 1 && hours.length==1){hours = "0" + hours;};
if(minutesMarker.length > 1 && minutes.length==1){minutes = "0" + minutes;};
if(secondsMarker.length > 1 && seconds.length==1){seconds = "0" + seconds;};
if(yearMarker.length>0){formatter = formatter.replace(yearMarker,year);}
if(monthMarker.length>0){formatter = formatter.replace(monthMarker,month);};
if(dayMarker.length>0){formatter = formatter.replace(dayMarker,day);};
if(hoursMarker.length>0){formatter = formatter.replace(hoursMarker,hours);};
if(minutesMarker.length>0){formatter = formatter.replace(minutesMarker,minutes);};
if(secondsMarker.length>0){formatter = formatter.replace(secondsMarker,seconds);};
return formatter;
},
parse : function(dateString,formatter){
var today = new Date();
if(dateString==null){return today;};
if(formatter==null){formatter = "yyyy-MM-dd";};
var yearMarker = formatter.replace(/[^y]/g,'');
var monthMarker = formatter.replace(/[^M]/g,'');
var dayMarker = formatter.replace(/[^d]/g,'');
var hoursMarker = formatter.replace(/[^h]/g,'');
var minutesMarker = formatter.replace(/[^m]/g,'');
var secondsMarker = formatter.replace(/[^s]/g,'');
var yearPosition = formatter.indexOf(yearMarker);
var yearLength = yearMarker.length;
var year = parseInt( dateString.substring(yearPosition ,yearPosition + yearLength) );
if(isNaN(year)){
year = today.getYear();
}else{
if( yearLength == 2){
if(year < 50 ){
year += 2000;
}else{
year += 1900;
};
};
};
var monthPosition = formatter.indexOf(monthMarker);
var month = parseInt( dateString.substring(monthPosition,monthPosition + monthMarker.length) );
if(isNaN(month)){
month = today.getMonth();
}else{
month-=1
};
var dayPosition = formatter.indexOf(dayMarker);
var day = parseInt( dateString.substring( dayPosition,dayPosition + dayMarker.length ) );
if(isNaN(day)){
day = today.getDate();
}else{
};
var hoursPosition = formatter.indexOf(hoursMarker);
var hours = parseInt( dateString.substring( hoursPosition,hoursPosition + hoursMarker.length ) );
if(isNaN(hours)){
hours = 0;
};
var minutesPosition = formatter.indexOf(minutesMarker);
var minutes = parseInt( dateString.substring( minutesPosition,minutesPosition + minutesMarker.length ) );
if(isNaN(minutes)){
minutes = 0;
};
var secondsPosition = formatter.indexOf(secondsMarker);
var seconds = parseInt( dateString.substring( secondsPosition,secondsPosition + secondsMarker.length ) );
if(isNaN(seconds)){
seconds = 0;
};
return new Date(year,month,day, hours,minutes,seconds);
}
};</pre>
<p> </p>
<p> //将一个 Date 格式化为日期/时间字符串。<br> alert( DateFormat.format(new Date(),'yyyy年MM月dd日') );<br> //从给定字符串的开始分析文本,以生成一个日期。<br> alert( DateFormat.parse('20100317','yyyyMMdd') );</p>
<p> </p>
<p> </p>
</div>
<p> </p>
6 楼
upup1000
2010-03-19
d: "String.leftPad(this.getDate(), 2, '0')",
D: "Date.getShortDayName(this.getDay())", // get localised short day name
j: "this.getDate()",
l: "Date.dayNames[this.getDay()]",
N: "(this.getDay() ? this.getDay() : 7)",
S: "this.getSuffix()",
w: "this.getDay()",
z: "this.getDayOfYear()",
W: "String.leftPad(this.getWeekOfYear(), 2, '0')",
F: "Date.monthNames[this.getMonth()]",
m: "String.leftPad(this.getMonth() + 1, 2, '0')",
M: "Date.getShortMonthName(this.getMonth())", // get localised short month name
n: "(this.getMonth() + 1)",
t: "this.getDaysInMonth()",
L: "(this.isLeapYear() ? 1 : 0)",
o: "(this.getFullYear() + (this.getWeekOfYear() == 1 && this.getMonth() > 0 ? +1 : (this.getWeekOfYear() >= 52 && this.getMonth() < 11 ? -1 : 0)))",
Y: "this.getFullYear()",
y: "('' + this.getFullYear()).substring(2, 4)",
a: "(this.getHours() < 12 ? 'am' : 'pm')",
A: "(this.getHours() < 12 ? 'AM' : 'PM')",
g: "((this.getHours() % 12) ? this.getHours() % 12 : 12)",
G: "this.getHours()",
h: "String.leftPad((this.getHours() % 12) ? this.getHours() % 12 : 12, 2, '0')",
H: "String.leftPad(this.getHours(), 2, '0')",
i: "String.leftPad(this.getMinutes(), 2, '0')",
s: "String.leftPad(this.getSeconds(), 2, '0')",
u: "String.leftPad(this.getMilliseconds(), 3, '0')",
O: "this.getGMTOffset()",
P: "this.getGMTOffset(true)",
T: "this.getTimezone()",
Z: "(this.getTimezoneOffset() * -60)",
D: "Date.getShortDayName(this.getDay())", // get localised short day name
j: "this.getDate()",
l: "Date.dayNames[this.getDay()]",
N: "(this.getDay() ? this.getDay() : 7)",
S: "this.getSuffix()",
w: "this.getDay()",
z: "this.getDayOfYear()",
W: "String.leftPad(this.getWeekOfYear(), 2, '0')",
F: "Date.monthNames[this.getMonth()]",
m: "String.leftPad(this.getMonth() + 1, 2, '0')",
M: "Date.getShortMonthName(this.getMonth())", // get localised short month name
n: "(this.getMonth() + 1)",
t: "this.getDaysInMonth()",
L: "(this.isLeapYear() ? 1 : 0)",
o: "(this.getFullYear() + (this.getWeekOfYear() == 1 && this.getMonth() > 0 ? +1 : (this.getWeekOfYear() >= 52 && this.getMonth() < 11 ? -1 : 0)))",
Y: "this.getFullYear()",
y: "('' + this.getFullYear()).substring(2, 4)",
a: "(this.getHours() < 12 ? 'am' : 'pm')",
A: "(this.getHours() < 12 ? 'AM' : 'PM')",
g: "((this.getHours() % 12) ? this.getHours() % 12 : 12)",
G: "this.getHours()",
h: "String.leftPad((this.getHours() % 12) ? this.getHours() % 12 : 12, 2, '0')",
H: "String.leftPad(this.getHours(), 2, '0')",
i: "String.leftPad(this.getMinutes(), 2, '0')",
s: "String.leftPad(this.getSeconds(), 2, '0')",
u: "String.leftPad(this.getMilliseconds(), 3, '0')",
O: "this.getGMTOffset()",
P: "this.getGMTOffset(true)",
T: "this.getTimezone()",
Z: "(this.getTimezoneOffset() * -60)",
5 楼
mawt
2010-03-19
Date.prototype.format = function(style){ var o = { "M+": this.getMonth() + 1, //month "d+": this.getDate(), //day "h+": this.getHours(), //hour "m+": this.getMinutes(), //minute "s+": this.getSeconds(), //second "w+": "天一二三四五六".charAt(this.getDay()), //week "q+": Math.floor((this.getMonth() + 3) / 3), //quarter "S": this.getMilliseconds() //millisecond } if (/(y+)/.test(style)) { style = style.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length)); } for (var k in o) { if (new RegExp("(" + k + ")").test(style)) { style = style.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k] : ("00" + o[k]).substr(("" + o[k]).length)); } } return style; };
这个是不是好点呢
4 楼
jindw
2010-03-19
3 楼
sodabao
2010-03-19
这的没有必要这样写 太麻烦了
2 楼
風一樣的男子
2010-03-19
这代码太复杂了
1 楼
ljt122000
2010-03-18
头都晕了,就为了个格式化就这么麻烦......
发表评论
-
【转】Closure Compiler 高级模式及更多思考(js文件压缩工具 )
2011-03-16 13:05 1992【转】Closure Compiler 高级模式及更多思考 ... -
Base64编码解码(JavaScript版本)
2010-12-17 10:24 2850<html> <HTML> < ... -
JavaScript 中2个等号与3个等号的区别
2010-12-07 13:21 25381首先,== equality 等同,=== identity ... -
JS前端获取上传文件的大小的方法
2010-11-01 11:04 23532WEB应用中,经常会遇到上传附件的问题,比如有时候会有限制附件 ... -
Javascript设置和获取Textarea的光标位置的方法
2010-07-20 11:05 6638<html><head> <m ... -
ExtJS 3.1.0 中Ext.data.Store关于baseParams的BUG修正
2010-07-15 09:59 4999ExtJs 中,我们使用GirdPanel的时候往往需要给后 ... -
JavaScript JSON 对象深拷贝方法(一例)
2010-07-14 20:08 6505其实深拷贝一个JS对象方法十分简单,只需要两部 1.首先将J ... -
关于Extjs异步session超时问题处理
2010-07-08 17:46 4050关于Extjs异步session超时问题处理对于HTTP超时的 ... -
ExtJS 的组建扩展方法
2010-07-08 17:19 2265ExtJS 是一个不错的JS 类库,提供了很多组建。 ... -
JS 地图移动拖拽
2010-05-26 09:06 2808很简单的东东,就是类似google地图那样,可以拖拽图片。 ... -
JS移动的方块
2010-05-21 09:00 1410PS:WASD上下左右,双击加速. 同时按下WASD任意2个按 ... -
JS对象序列化为JSON对象
2010-04-17 10:07 10720/** * JSON 解析类 * Copyright ... -
Ext智能提示 - Spket(Eclipse插件)
2009-10-23 13:01 2008Spket是Eclipse的一个插件,RIA的开发工具。支持J ... -
带选择框的JS树控件2 (为JSTree再次提速)
2009-10-14 12:00 9577以前写过一个带选择框的JS树控件 但是当时发现一个问题,第一次 ... -
带选择框的JS树控件
2009-10-12 11:09 2113前阵子自己写了个带选择框的tree控件,虽然还有一些bug没有 ... -
多附件上传
2008-10-29 23:48 1509uploads.js var UploadBuilder=(f ... -
HTML通过button触发input-file控件上传文件的问题
2008-10-20 10:32 25653出于安全方面的考虑,通过JS修改input-file的valu ... -
模拟线程Timer(JS)
2008-09-22 09:06 1898<script language="Java ... -
转换Unicode (JS)
2008-09-02 17:34 2643<html> <head> ... -
JS-Cookie
2008-08-05 11:33 1359/** * cookie管理对象 */ Cook ...
相关推荐
在JavaScript中,我们可以使用内置的`Date`对象来创建、操作和格式化日期。 首先,`Date`对象是JavaScript中的内置构造函数,可以用来创建一个新的日期实例。例如: ```javascript let date = new Date(); // 创建...
在探讨JavaScript时间格式化函数之前,了解一些关于JavaScript中的时间对象是很有必要的。JavaScript中的Date对象用于处理日期和时间。Date对象支持多种方法,例如获取年、月、日、小时、分钟和秒等。不同的浏览器和...
JavaScript时间格式化插件是一种工具,它允许开发者以自定义的格式显示日期和时间,使得在Web应用中处理和展示时间信息更为灵活和方便。在JavaScript中,原生的Date对象虽然提供了基本的时间处理功能,但其输出格式...
在前端开发工作中,日期时间格式化是一个频繁遇到的需求。本文总结了JavaScript中处理日期时间格式化的几种常用方法,尤其是推荐了一种个性化的输出方式,该方法提供了灵活性和丰富的日期时间表现形式,能够满足多种...
在JavaScript中,处理和...这篇博文的链接(https://w8700569.iteye.com/blog/882708)可能包含了更多示例和深入的讨论,对于学习和实践JavaScript日期格式化非常有帮助。阅读完整的文章将有助于掌握更多细节和技巧。
此外,除了手动格式化,还可以使用一些库,如Moment.js或date-fns,它们提供了更丰富的日期时间处理功能和易用的API,可以轻松实现各种复杂的日期时间格式化需求。不过,对于基础的格式化需求,了解和掌握JavaScript...
在JavaScript中,日期和数字的文本格式化是一个常见的需求,特别是在构建用户界面或者处理数据时。这个主题主要涉及如何将日期对象转换为易读的字符串,以及如何对数字进行格式化,使其符合特定的显示标准。这篇博文...
通过不同的格式字符串,可以轻松地获取到所需的日期时间格式。此外,第二种方法还提供了更丰富的格式选项,如星期的显示,适用于需要更复杂日期格式化需求的应用场景。 ### 使用建议 虽然上述两种方法非常实用,但...
### JavaScript中的Trim函数和日期时间格式化函数 在JavaScript中,字符串处理和日期操作是非常常见的需求,尤其是在数据清洗、格式转换等场景下。本文将详细介绍如何利用自定义方法实现字符串的Trim功能以及日期...
JavaScript提供了多种方式来格式化日期和时间,包括原生的Date对象方法、国际化API(Intl对象)以及第三方库。本文将详细介绍这些方法,并提供实际代码示例。 在JavaScript中格式化日期和时间是一个涉及多种方法和...
感谢某前辈写的JS格式化日期和时间JS代码,很好很强大!!! 前言: js虽然提供了各种获取时间Date对象的不同属性方法,如:getDate 方法 | getDay 方法 | getFullYear 方法 | getHours 方法 … … 等等,但是却...
在Web应用中,日期时间格式化的灵活性对于提高用户体验至关重要,因此掌握这一技能非常实用。 #### 描述:对前端日期进行格式化 这段描述提供了关于日期格式化功能的具体用法示例,展示了如何使用自定义格式字符串...
这些库提供了更强大的功能,如时区支持、复杂的日期格式化、日期时间的加减操作、日期比较等。例如,Moment.js允许你用`moment().format('YYYY-MM-DD')`来轻松地格式化日期,而date-fns则推崇更简洁的API设计,如`...
标题“javascript日期格式化示例分享”和描述“主要介绍了javascript日期格式化示例,需要的朋友可以参考下”共同指向一个主题:即在JavaScript中如何对日期进行格式化。在编程实践中,日期格式化是一个常见需求,...
js通用日期格式化工具,直接引用该工具类就可以使用,方便快捷,建议大家收藏此工具类,该工具很好的解决了前端页面显示日期格式问题
5. **JavaScript代码格式化**: JavaScript是网页动态功能的核心,其代码格式化同样重要。工具如Prettier或ESLint可以帮助开发者统一代码风格,提高代码质量。这些工具可以处理括号对齐、变量命名规则、导入顺序等...
总的来说,这个"JavaScript仿PHP时间格式化函数"极大地扩展了JavaScript在日期格式化方面的灵活性,使得前端开发者无需后端的帮助,也能实现与PHP类似的日期处理。这个库对于需要在多种语言间保持一致日期格式的项目...
Javascript日期格式化在日常开发中还是挺常见的,那么下面就给大家分享Javascript时间格式format函数的两种使用方法示例,一起来看看。 方法一 Date.prototype.pattern=function(fmt) { var o = { "M+" : this....
js 语言的格式化日期格式的类。很好用的。
在JavaScript开发中,日期和时间的处理是非常常见的需求之一。...最终,通过这种方式,我们可以实现一个通用的JavaScript日期时间格式化工具,使得日期时间的显示更加符合中文用户的阅读习惯,提高了用户体验。