文章目录
- 1. 日期时间字符串转换格式
- 2. 日期格式化
- 3. 日期时间格式化
- 4. 星期几格式化
- 5. 日期时间星期格式化
1. 日期时间字符串转换格式
前言:最近在做一个需求的时候,遇到一个日期格式化的问题,后端返回的参数是一串字符串,我将这串字符串进行格式化,发现拿到的结果不对,后来发现,这串字符串不是时间戳,就是日期时间字符串,我只需要按照格式分割开就行了,所以这里做个总结,希望能够有用。
20230304162053 转换成 2023-03-04 16:20:53
代码如下:
const date = '20230304162053'
const newDate = date.replace(/^(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})$/, '$1-$2-$3 $4:$5:$6');
console.log(newDate);
打印的结果如下:
注:这个不是日期格式化,只是用分隔符把字符串分割开,因为后端返回的就是正常日期时间,如果返回的是时间戳,需要日期格式化,请看下面👇
2. 日期格式化
(1)以下代码是获取当前日期,并格式化成 yyyy-mm-dd 这种形式
formattedDate(){
const date = new Date();
const year = date.getFullYear();
const month = (date.getMonth() + 1).toString().padStart(2, '0');
const day = date.getDate().toString().padStart(2, '0');
const formattedDate = `${year}-${month}-${day}`;
console.log(formattedDate);
}
打印结果如下:
(2)可以把格式化日期封装成一个方法,需要的时候单独调用即可:
方法封装:
formattedDate(timestamp){
const date = new Date(timestamp);
const year = date.getFullYear();
const month = (date.getMonth() + 1).toString().padStart(2, '0');
const day = date.getDate().toString().padStart(2, '0');
const formattedDate = `${year}-${month}-${day}`;
return formattedDate
}
调用:
// 假设有一个时间戳变量 timestamp
const timestamp = 1615957883000;
const newDate = this.formattedDate(timestamp)
console.log(newDate);
打印结果:
注:格式化之前的时间戳,一定要是数字型,不能是字符串,否则会出现以下结果:
如果后端返回的是字符串,可以先将它转化成数字型,然后再进行格式化:
const timestamp = '1615957883000';
const newTimes = parseInt(timestamp)
const newDate = this.formattedDate(newTimes)
console.log(newDate);
3. 日期时间格式化
(1)以下代码是获取当前日期,并格式化成 yyyy-MM-dd hh:mm:ss 这种形式
formattedDate(){
const date = new Date();
const year = date.getFullYear();
const month = (date.getMonth() + 1).toString().padStart(2, '0');
const day = date.getDate().toString().padStart(2, '0');
const hour = date.getHours().toString().padStart(2, '0');
const minute = date.getMinutes().toString().padStart(2, '0');
const second = date.getSeconds().toString().padStart(2, '0');
const formattedDate = `${year}-${month}-${day} ${hour}:${minute}:${second}`;
console.log(formattedDate);
}
打印结果:
(2)把格式化日期时间封装成一个方法,需要的时候单独调用即可:
方法封装:
formattedDate(timestamp){
const date = new Date(timestamp);
const year = date.getFullYear();
const month = (date.getMonth() + 1).toString().padStart(2, '0');
const day = date.getDate().toString().padStart(2, '0');
const hour = date.getHours().toString().padStart(2, '0');
const minute = date.getMinutes().toString().padStart(2, '0');
const second = date.getSeconds().toString().padStart(2, '0');
const formattedDate = `${year}-${month}-${day} ${hour}:${minute}:${second}`;
return formattedDate
}
调用:
// 假设有一个时间戳变量 timestamp
const timestamp = 1615957883000;
const newDate = this.formattedDate(timestamp)
console.log(newDate);
打印结果:
4. 星期几格式化
(1)以下代码是获取当前日期,并格式化成 星期几 这种形式
// 定义星期的缩写
const show_day = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'];
const now = new Date(); // 获取当前时间
const dayOfWeek = now.getDay(); // 获取星期几
console.log(show_day[dayOfWeek]);
打印结果:
(2)把格式化星期封装成一个方法,需要的时候单独调用即可:
方法封装:
getWeek(time){
// 定义星期的缩写
const show_day = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'];
const now = new Date(time); // 获取当前时间
const dayOfWeek = now.getDay(); // 获取星期几
return show_day[dayOfWeek];
}
调用:
// 假设有一个时间戳变量 timestamp
const timestamp = 1615957883000;
const newDate = this.getWeek(timestamp)
console.log(newDate);
打印结果如下:
5. 日期时间星期格式化
方法封装:
formattedDate(timestamp){
const date = new Date(timestamp);
const year = date.getFullYear();
const month = (date.getMonth() + 1).toString().padStart(2, '0');
const day = date.getDate().toString().padStart(2, '0');
const hour = date.getHours().toString().padStart(2, '0');
const minute = date.getMinutes().toString().padStart(2, '0');
const second = date.getSeconds().toString().padStart(2, '0');
const show_day = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'];
const dayOfWeek = date.getDay();
const formattedDate = `${year}-${month}-${day} ${hour}:${minute}:${second} ${show_day[dayOfWeek]}`;
return formattedDate
},
调用:
// 假设有一个时间戳变量 timestamp
const timestamp = 1615957883000;
const newDate = this.formattedDate(timestamp)
console.log(newDate);
打印结果:
尾注:这是经常会用到的一些格式化时间,希望对大家有所帮助,支持请按1~