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~

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐