js简单日期格式化,两种方案
Introduce
在做一个活动页面,需要获取当前日期,但是后台api的接口给的日期格式很期怕。就直接做了个格式化日期的小插件。
Tool
- vscode
- chrome
Thought
两种方案
- 根据arguments来做,传进去的参数分别是中间的分隔符,当为空时,默认为空格,一个参数时,在中间插入,两个参数,插在中间空隙,三个参数就分别在日期的三个地方
- 根据正则表达式进行替换
详细例子代码中有
Code
function formatData1() {
var formate = '';
var date = new Date();
var year = date.getFullYear();
var mouth = date.getMonth() + 1;
var day = date.getDate();
if (day < 9 && day > 0) {
day = '0' + day;
}
if (mouth < 9 && day > 0) {
mouth = '0' + mouth;
}
if (arguments.length === 1) {
formate = year + arguments[0] + mouth + arguments[0] + day;
} else if(arguments.length === 2) {
formate = year + arguments[0] + mouth + arguments[1] + day;
} else if (arguments.length === 3) {
formate = year + arguments[0] + mouth + arguments[1] + day + arguments[2];
} else if (!arguments.length) {
formate = year + '' + mouth + '' + day;
}
return formate;
}
console.log(formatData1());
console.log(formatData1('-'));
console.log(formatData1('/'));
console.log(formatData1('+','-'));
console.log(formatData1('年','月','日'));
function formatData2(str) {
var formate = '';
var date = new Date();
var year = date.getFullYear();
var mouth = date.getMonth() + 1;
var day = date.getDate();
if (day < 9 && day > 0) {
day = '0' + day;
}
if (mouth < 9 && day > 0) {
mouth = '0' + mouth;
}
var formate = str.replace(/YYYY/g, year).replace(/MM/g, mouth).replace(/DD/g, day);
return formate;
}
console.log(formatData2('YYYYMMDD'))
console.log(formatData2('YYYY-MM-DD'))
console.log(formatData2('YYYY年MM月DD日'))
writer&contact
{
"name":"Jontyy" ,
"email": " jontyy@163.com"
}