例如: new Date() ====> "20171024190000"
有什么一些简便的方法? 谢谢
例如: new Date() ====> "20171024190000"
有什么一些简便的方法? 谢谢
我自己写了一个,没有任何依赖,可配置扩展
function DateFormat() {
return new DateFormat.prototype.init();
}
DateFormat.fn = DateFormat.prototype = {
_default: {
formatFn: function(date, pattern) {
date = date || 0;
pattern = pattern.length;
return pattern === 1 ? date: (Math.pow(10, pattern) + date + '').slice( - pattern);
},
formatMap: {
Y: function(d, f) {
return DateFormat.fn._default.formatFn(d.getFullYear(), f);
},
M: function(d, f) {
return DateFormat.fn._default.formatFn(d.getMonth() + 1, f);
},
D: function(d, f) {
return DateFormat.fn._default.formatFn(d.getDate(), f);
},
h: function(d, f) {
return DateFormat.fn._default.formatFn(d.getHours(), f);
},
m: function(d, f) {
return DateFormat.fn._default.formatFn(d.getMinutes(), f);
},
s: function(d, f) {
return DateFormat.fn._default.formatFn(d.getSeconds(), f);
},
w: function(d, f) {
return d.getDay();
}
},
},
// 初始化
init: function() {
return this;
},
// 配置
config: function(config) {
for (var name in config) {
this._default[name] = config[name];
}
return this;
},
// 格式化
format: function(date, pattern) {
date = new Date(date);
if (/Invalid/i.test(date + '')) {
console.error('请提供一个合法日期!');
return;
}
var _self = this,
char = '';
return pattern.replace(/([YMDhsmw])\1*/g,
function(format) {
char = format.charAt();
return _self._default.formatMap[char] ? _self._default.formatMap[char](date, format) : '';
});
}
};
DateFormat.fn.init.prototype = DateFormat.fn;
var fDate = DateFormat().format(new Date(), 'YYYYMMDDhhmmss');
console.log(fDate);
27 回答13.8k 阅读
8 回答3.6k 阅读✓ 已解决
6 回答1.4k 阅读✓ 已解决
5 回答5.3k 阅读✓ 已解决
4 回答1.6k 阅读✓ 已解决
3 回答1.8k 阅读
4 回答2.3k 阅读✓ 已解决
使用 date-dns 库,下面的代码可以在这个页面的控制台中尝试
使用 Moment:
使用一段曾经流行的格式化代码
示例