@lesonky
2017-01-12T06:28:14.000000Z
字数 2363
阅读 803
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);}//工具方法,给一位数字前补个0function 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.18Date.prototype.format = function (fmt) { //author: meizzvar 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);}