@lesonky
2017-01-12T06:28:14.000000Z
字数 2363
阅读 732
JavaScript
时间格式化方法,记录一下,以便以后复制粘帖
//工具方法,时间格式化
function formateDate(timeStamp) {
timeStamp = timeStamp || (new Date()).getTime();
var now = new Date(timeStamp);
var year = now.getYear() + 1900;;
var month = now.getMonth() + 1;
var date = now.getDate();
var hour = now.getHours();
var minute = now.getMinutes();
var seconds = now.getSeconds();
return year + "-" + formateNumber(month) + "-" + formateNumber(date) + " " +
formateNumber(hour) + ":" + formateNumber(minute) + ":" + formateNumber(seconds);
}
//工具方法,给一位数字前补个0
function formateNumber(num) {
num = num + "";
return num.replace(/^(\d)$/, "0$1");
}
扩展Date提供dateFormatter方法(从网上找来的,作者已不可考)
// 对Date的扩展,将 Date 转化为指定格式的String
// 月(M)、日(d)、小时(h)、分(m)、秒(s)、季度(q) 可以用 1-2 个占位符,
// 年(y)可以用 1-4 个占位符,毫秒(S)只能用 1 个占位符(是 1-3 位的数字)
// 例子:
// (new Date()).format("yyyy-MM-dd hh:mm:ss.S") ==> 2006-07-02 08:09:04.423
// (new Date()).format("yyyy-M-d h:m:s.S") ==> 2006-7-2 8:9:4.18
Date.prototype.format = function (fmt) { //author: meizz
var 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;
}
字符串格式化成时间,自己写的,还有点不完善,但是大部分功能已经符合要求
/**
* 根据formatter字符串转换时间字符串
* 月(M)、日(d)、小时(h)、分(m)、秒(s) 占位符个数需要和时间字符串匹配
* @param {string} dateStr 时间字符串 如:"2015-11-12"
* @param {string} fmt 格式化字符串 如:"yyyy-MM-dd"
* @return {Date} 标准时间
* author: shaojiasong 2015-12-29
*/
function parseDate(dateStr,fmt){
if(!dateStr || !fmt || (dateStr.length != fmt.length)) {
throw new Error("转换时间时发生错误,时间字符串与格式字符串不匹配!");
}
//排除特殊字符,这些字符很有可能做分隔符
fmt = fmt.replace(/([\^\$\.\*\+\?\=\!\:\|\\\/\(\)\[\]\{\}])/ig,"\\$1");
function getReg(str){
var cfmt = fmt;
cfmt = cfmt.replace(new RegExp(str+"+","g"),function(full){ return "("+full+")";}) || "";
return cfmt.replace(/[yMdhmsS]/g,"\\d");
}
var year = parseInt((new RegExp(getReg("y")).exec(dateStr)[1])) || 0;
var month = parseInt((new RegExp(getReg("M")).exec(dateStr)[1])) - 1 || 0;
var day = parseInt((new RegExp(getReg("d")).exec(dateStr)[1])) || 0;
var hour = parseInt((new RegExp(getReg("h")).exec(dateStr)[1])) || 0;
var minute = parseInt((new RegExp(getReg("m")).exec(dateStr)[1])) || 0;
var second = parseInt((new RegExp(getReg("s")).exec(dateStr)[1])) || 0;
return new Date(year,month,day,hour,minute,second);
}