javascript日期时间的格式化
习惯了使用java的SimpleDateFormat 和 php 的 date ,总感觉javascript缺少这种类似的方法。下面介绍一个用js写的简单格式化Date为字符串方法。
主要使用了js 的 replace,正则匹配的标志,用 g,代表全局匹配,即找到所有匹配,而不是在第一个匹配后停止。
/**
* 格式化时间
* @param date Date对象
* @param format 格式化字符串:y - 年份。yy 表示两位年份,yyyy 表示 4 位年份
* M - 月份。M 表示月份(1-12),MM 表示2位数的月份,不足2位数,第一位补0
* d - 月份中的天数。d 表示天数(1-31),dd 表示天数
* H - 一天中的小时数0~23)。H 表示小时数, HH 表示2位的小时数,不足2位数,第一位补0
* m - 分钟数。用 m 表示分钟数(0-59),mm 表示2位的分钟数,不足2位数,第一位补0
* s - 秒数。用 s 表示秒数(0-59),ss 表示2位数的秒数,不足2位数,第一位补0
*
* @return 返回格式化后的字符串
*/
function formatDate (date, format) {
if (date == null) {
return "";
}
var pad = function(n) {
return n < 10 ? '0' + n : n;
}
var year = date.getFullYear();
var yearShort = year.toString().substring(2);
var month = date.getMonth() + 1;
var monthPad = pad(month);
var dateInMonth = date.getDate();
var dateInMonthPad = pad(dateInMonth);
var hour = date.getHours();
var hourPad = pad(hour);
var minute = date.getMinutes();
var minutePad = pad(minute);
var second = date.getSeconds();
var secondPad = pad(second);
return format.replace(/yyyy/g, year).replace(/yy/g, yearShort)
.replace(/MM/g, monthPad).replace(/M/g, month)
.replace(/dd/g, dateInMonthPad).replace(/d/g, dateInMonth)
.replace(/HH/g, hourPad).replace(/H/g, hour)
.replace(/mm/g, minutePad).replace(/m/g, minute)
.replace(/ss/g, secondPad).replace(/s/g, second);
}
示例
formatDate(new Date(), "yyyy-MM-dd HH:mm:ss");
// 2019-12-08 21:53:35
亲自试一试:Demo
非特殊说明,本网站所有文章均为原创。如若转载,请注明出处:https://mip.cpming.top/p/js-format-date-string