- 浏览: 207159 次
- 性别:
- 来自: 北京
最新评论
-
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 1957【转】Closure Compiler 高级模式及更多思考 ... -
Base64编码解码(JavaScript版本)
2010-12-17 10:24 2795<html> <HTML> < ... -
JavaScript 中2个等号与3个等号的区别
2010-12-07 13:21 25328首先,== equality 等同,=== identity ... -
JS前端获取上传文件的大小的方法
2010-11-01 11:04 23486WEB应用中,经常会遇到上传附件的问题,比如有时候会有限制附件 ... -
Javascript设置和获取Textarea的光标位置的方法
2010-07-20 11:05 6602<html><head> <m ... -
ExtJS 3.1.0 中Ext.data.Store关于baseParams的BUG修正
2010-07-15 09:59 4968ExtJs 中,我们使用GirdPanel的时候往往需要给后 ... -
JavaScript JSON 对象深拷贝方法(一例)
2010-07-14 20:08 6467其实深拷贝一个JS对象方法十分简单,只需要两部 1.首先将J ... -
关于Extjs异步session超时问题处理
2010-07-08 17:46 4004关于Extjs异步session超时问题处理对于HTTP超时的 ... -
ExtJS 的组建扩展方法
2010-07-08 17:19 2228ExtJS 是一个不错的JS 类库,提供了很多组建。 ... -
JS 地图移动拖拽
2010-05-26 09:06 2772很简单的东东,就是类似google地图那样,可以拖拽图片。 ... -
JS移动的方块
2010-05-21 09:00 1364PS:WASD上下左右,双击加速. 同时按下WASD任意2个按 ... -
JS对象序列化为JSON对象
2010-04-17 10:07 10609/** * JSON 解析类 * Copyright ... -
Ext智能提示 - Spket(Eclipse插件)
2009-10-23 13:01 1979Spket是Eclipse的一个插件,RIA的开发工具。支持J ... -
带选择框的JS树控件2 (为JSTree再次提速)
2009-10-14 12:00 9504以前写过一个带选择框的JS树控件 但是当时发现一个问题,第一次 ... -
带选择框的JS树控件
2009-10-12 11:09 2082前阵子自己写了个带选择框的tree控件,虽然还有一些bug没有 ... -
多附件上传
2008-10-29 23:48 1481uploads.js var UploadBuilder=(f ... -
HTML通过button触发input-file控件上传文件的问题
2008-10-20 10:32 25575出于安全方面的考虑,通过JS修改input-file的valu ... -
模拟线程Timer(JS)
2008-09-22 09:06 1864<script language="Java ... -
转换Unicode (JS)
2008-09-02 17:34 2597<html> <head> ... -
JS-Cookie
2008-08-05 11:33 1324/** * cookie管理对象 */ Cook ...
相关推荐
javascript格式化日期,将日期型转为字符串,字符串转为日期型,格式自由。
JavaScript时间格式化插件,返回指定字符串
本文给大家汇总介绍了javascript格式化日期时间的几种常用方法,个人对最后一种个性化输出时间比较有兴趣,基本上只要项目中能用到都是使用这种,推荐给小伙伴们。
感谢某前辈写的JS格式化日期和时间JS代码,很好很强大!!! 前言: js虽然提供了各种获取时间Date对象的不同属性方法,如:getDate 方法 | getDay 方法 | getFullYear 方法 | getHours 方法 … … 等等,但是却...
JavaScript - 格式化日期时间 思路代码:demo.html 完整代码:index.html 相关教程,请前往我的博客查看。
javascript的TRIM函数和日期时间格式化函数 如 var d = new Date().format('yyyy-MM-dd hh:mm:ss');
主要介绍了javascript日期格式化方法,实例总结了JavaScript针对日期与时间的格式化操作技巧,具有一定参考借鉴价值,需要的朋友可以参考下
js通用日期格式化工具,直接引用该工具类就可以使用,方便快捷,建议大家收藏此工具类,该工具很好的解决了前端页面显示日期格式问题
js 语言的格式化日期格式的类。很好用的。
全面兼容的javascript时间格式化函数,实用总结! 代码如下: <!DOCTYPE html> <html> <head> <meta charset=”utf-8″ /> <meta http-equiv=”Content-Type” content=”text/html; charset...
Javascript日期格式化在日常开发中还是挺常见的,那么下面就给大家分享Javascript时间格式format函数的两种使用方法示例,一起来看看。 方法一 Date.prototype.pattern=function(fmt) { var o = { "M+" : this....
javascript 精确计算、日期处理、金额格式化
主要介绍了javascript日期格式化示例,需要的朋友可以参考下
javascript中,new Date()得到的是一个国际化时间格式的时间值这在我们使用中文的时候,很不方便,也很难看所以就需要对javascript中的日期时间进行格式化.
javascript中Date format(js日期格式化)方法小结.docx
JavaScript中时间格式化新思路toLocaleString() 目录 1、时间格式化常规思路2、时间格式化toLocaleString() 1、时间格式化常规思路 2、时间格式化toLocaleString() 研究Object对象的时候,看到了 ...
这是一个Javascript版的仿PHP时间格式化函数,使用方法和PHP语言一样,有丰富的模板字符串,替换更自由