我想写一个组件,在输入数字中比如:201705 自动格式化日期格式,最终日期格式为:2017-05 再次输入06自动格式化2017-05-06
我想写一个组件,在输入数字中比如:201705 自动格式化日期格式,最终日期格式为:2017-05 再次输入06自动格式化2017-05-06
funtion format_num_to_date(num) {
var str = String(num);
if (str.length === 8) {
var date = str.substr(0,4) + '-' + str.substr(4,2) + '-' + str.substr(6);
return date;
}
}
format_num_to_date(20170523);
//时间格式化
// var time1 = new Date().Format(“yyyy-MM-dd”);
// var time2 = new Date().Format(“yyyy-MM-dd HH:mm:ss”);
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;
}
let yyyymmdd = (date, sep = '-') => {
return [
date.getFullYear(),
date.getMonth()+1,
date.getDate()
].map(d => d.toString())
.map(d => ('00' + d).slice(d.length >= 4 ? -4 : -2)).join(sep);
}
13 回答12.8k 阅读
7 回答1.9k 阅读
3 回答1.1k 阅读✓ 已解决
2 回答1.2k 阅读✓ 已解决
6 回答870 阅读✓ 已解决
6 回答1k 阅读
2 回答1.3k 阅读✓ 已解决
Edit: 对提出的 case 做简单转换:
一个简单的实现如下: