JavaScript中日期时间操作

时间:2021-08-21 17:18:54

1、JS 日期时间格式化

Date.prototype.format = function(fmt) {
var o = {
"y+": this.getFullYear(),
"M+": this.getMonth() + 1,
"d+": this.getDate(),
"H+": this.getHours(),
"m+": this.getMinutes(),
"s+": this.getSeconds(),
"S": this.getMilliseconds(),
"h+": (this.getHours() % 12),
"a": (this.getHours() / 12) <= 1 ? "AM": "PM"
};
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;
}

使用方式:

new Date().format("yyyy-MM-dd HH:mm:ss");             // 2016-06-20 14:51:53
new Date().format("yyyy-MM-dd hh:mm:ss"); // 2016-06-20 02:51:53
new Date().format("yyyy-MM-dd HH:mm:ss S"); // 2016-06-20 14:51:53 56
new Date().format("yyyy-MM-dd HH:mm:ss S a"); // 2016-06-20 14:51:53 56 PM
new Date().format("yyyy年MM月dd日 HH时mm分ss秒"); // 2016年06月20日 14时51分53秒
new Date().format("y-M-d H:m:s"); // 2016-06-20 14:51:53
new Date().format("y-M-d H:m:s S"); // 2016-06-20 02:51:53 56

2、JS 日期时间格式校验

格式为:yyyy-MM-dd HH:mm:ss

var checkDateTime = function (str){
var reg = /^(\d{4})-(\d{1,2})-(\d{1,2})\s(\d{1,2}):(\d{1,2}):(\d{1,2})$/;
var r = str.match(reg);
if(r==null) return false;
r[2]=r[2]-1;
var d= new Date(r[1],r[2],r[3],r[4],r[5],r[6]);
if(d.getFullYear()!=r[1]) return false;
if(d.getMonth()!=r[2]) return false;
if(d.getDate()!=r[3]) return false;
if(d.getHours()!=r[4]) return false;
if(d.getMinutes()!=r[5]) return false;
if(d.getSeconds()!=r[6]) return false;
return true;
}