js时间日期格式化
javascript没有提供标准可用的时间格式化相关方法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| $.formatDate = function(date,format){ var padNum = function(num){ return ("" + num).replace(/^(\d)$/,"0$1"); } var cfg = { yyyy : date.getFullYear() ,yy : date.getFullYear().toString().substring(2) ,M : date.getMonth() + 1 ,MM : padNum(date.getMonth() + 1) ,d : date.getDate() ,dd : padNum(date.getDate()) ,H : date.getHours() ,HH : padNum(date.getHours()) ,h : date.getHours()>12?date.getHours()-12:date.getHours() ,hh : padNum(date.getHours()>12?date.getHours()-12:date.getHours()) ,m : date.getMinutes() ,mm : padNum(date.getMinutes()) ,s : date.getSeconds() ,ss : padNum(date.getSeconds()) ,SSS: (1000 + date.getMilliseconds() + "").substring(1) } format || (format = "yyyy-MM-dd HH:mm:ss"); return format.replace(/([yMdHhmsS])(\1)*/ig,function(m){ var v = cfg[m]; return v === undefined ? m : v; }); }
|
说明
- 该函数的两个参数分别为:1)时间日期 2)格式化字符串
- 返回值:按照format格式化的时间日期字符串
- 举例说明(以当前时间为2014-12-13 15:30:12为例,
var date = new Date();
):
调用方式 |
返回值 |
$.formatDate(date, ‘yyyy-MM-dd HH:mm:ss,SSS’); |
2014-12-13 15:30:12,000 |
$.formatDate(date, ‘yyyy-MM-dd HH:mm:ss’); |
2014-12-13 15:30:12 |
$.formatDate(date, ‘yyyy-MM-dd HH:mm’); |
2014-12-13 15:30 |
$.formatDate(date, ‘HH:mm:ss’); |
15:30:12 |
$.formatDate(date, ‘yyyy年MM月dd日’); |
2014年12月13日 |
时间日期处理(时间日期的计算)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
|
$.getDateStr = function(){ var date, format, options;
for(var i=0; i<arguments.length; i++){ var arg = arguments[i]; if(arg === null || arg === undefined){ continue; } if((typeof arg === 'string') && arg.constructor == String){ format = arg; } else if((typeof arg === 'object')) { if(arg.constructor == Date){ date = arg; } else { options = arg; } } }
date = date || new Date(); format = format || "yyyy-MM-dd HH:mm:ss"; options = options || {};
var cfg = { d: function(v){ date.setDate(date.getDate() + v); }, M: function(v){ date.setMonth(date.getMonth() + v); }, m: function(v){ date.setMinutes(date.getMinutes() + v); }, H: function(v){ date.setHours(date.getHours() + v); }, y: function(v){ date.setFullYear(date.getFullYear() + v); }, s: function(v){ date.setSeconds(date.getSeconds() + v); }, S: function(v){ date.setMilliseconds(date.getMilliseconds() + v); } } for(var k in options){ cfg[k] && cfg[k](options[k]); } return $.formatDate(date, format); }
|
说明
调用方式 |
返回值 |
$.getDateStr() |
2014-12-13 15:30:12 |
$.getDateStr({d: 1}) |
2014-12-14 15:30:12 |
$.getDateStr({d: -1}) |
2014-12-12 15:30:12 |
$.getDateStr({d: -13}) |
2014-11-30 15:30:12 |
$.getDateStr({H: -1}) |
2014-12-13 14:30:12 |
$.getDateStr({M:-1, d: 1}) |
2014-11-14 14:30:12 |
$.getDateStr('yyyy-MM-dd') |
2014-12-13 |
$.getDateStr({M:-1},'yyyy-MM') |
2014-11 |
var d = new Date();
d.setDate(25);
$.getDateStr(d,{M:-1},'yyyy-MM-dd 00:00:00');
|
2014-11-25 00:00:00 |
EasyUI时间控件datetimebox的初始化
刚使用EasyUI的时间控件时,遇到一个问题,那就是如何初始化该该控件为系统当前时间或当前时间前一个小时,在网上搜了很久也没有满意答案
本文前两点时间格式化和时间日期计算都是为了这个EasyUI时间控件初始化做准备的
使用方式如下
1 2 3
| <input name="startTime" id="startTime" class="easyui-datetimebox" data-options="required:true,missingMessage:'开始时间不能为空', editable:false, value:$.getDateStr({H:-1})" style="width:183px;" />
|
说明
这里的value:$.getDateStr({H:-1})
即是设置初始时间为当前时间的前一个小时
完