JS日期时间转换

一、常见时间格式:

时间格式示例
常见时间格式2023-05-06 13:52:23
中国标准时间Sat May 06 2023 13:52:44 GMT+0800 (中国标准时间)
JSON时间格式2023-05-06T13:52:23.061Z

二、内置方法

  1. toDateString(),把 Date 对象的日期部分转换为字符串。//'Sat May 06 2023'

  2. toTimeString(),把 Date 对象的时间部分转换为字符串。//'14:05:29 GMT+0800 (中国标准时间)'
  3. toGMTString(),获取格林尼治时间字符串。//'Sat, 06 May 2023 06:03:42 GMT'
  4. toString(),把 Date 对象转换为字符串。//'Sat May 06 2023 14:00:02 GMT+0800 (中国标准时间)'
  5. toUTCString(),根据世界时(UTC),把 Date 对象转换为字符串。//'Sat, 06 May 2023 06:07:58 GMT'
  6. toLocaleString(),根据本地时间格式,把 Date 对象转换为字符串。//'2023/5/6 14:08:56'
  7. toLocaleDateString(),根据本地时间格式,把 Date 对象的日期部分转换为字符串。//'2023/5/6'
  8. toLocaleTimeString(),根据本地时间格式,把 Date 对象的时间部分转换为字符串。//'14:10:16'
  9. toJSON(),将 Date 对象转换为字符串,并格式化为 JSON 时间格式。//'2023-05-06T06:10:51.797Z'
  10. toISOString(),使用 ISO 标准返回 Date 对象的字符串格式。//'2023-05-06T06:12:01.451Z'

三、转换方法

3.1、"/Date(1683250843000)/" 转 年-月-日 时:分:秒

formatStringDate(date)
 {
    let tmp = date.substr(6, date.length-8); 
    let data = new Date(+tmp);
    let year = data.getFullYear();
    let month = data.getMonth() + 1;
    let day = data.getDate();
    let hour = data.getHours();
    let minute = data.getMinutes();
    let second = data.getSeconds();
    return year + '-' + month + '-' + day + ' ' + hour + ':' + minute + ':' + second;
 }

3.2、Utc时间 转 年-月-日 时:分:秒

UtcDateString(utc_datetime){
    // 处理成为时间戳
    var timestamp = new Date(utc_datetime);
    timestamp = timestamp.getTime();
    timestamp = timestamp / 1000;

    // 增加8个小时,北京时间比utc时间多八个时区
    //timestamp = timestamp + 8 * 60 * 60;

    // 时间戳转为时间
    var beijing_datetime = new Date(parseInt(timestamp) * 1000);
    return GetDateTime(beijing_datetime); // 2017-03-31 16:02:06
    //GetDateTime()方法在下面
}

3.3、中国标准时间 转 年-月-日 时:分:秒 =》new Date(时间搓)=>中国标准时间

GetDateTime(date){
    var year = date.getFullYear();
    var month = date.getMonth() + 1;
    var day = date.getDate();
    var hour = date.getHours();
    var min = date.getMinutes();
    var sec = date.getSeconds();
    month = month >= 10 ? month : ("0" + month);
    day = day >= 10 ? day : ("0" + day);
    hour = hour >= 10 ? hour : ("0" + hour);
    min = min >= 10 ? min : ("0" + min);
    sec = sec >= 10 ? sec : ("0" + sec);
    return year + "-" + month + "-" + day + " " + hour + ":" + min + ":" + sec;
}

3.4、中国标准时间  获取时分

GetHourAndMin(date){
    var hour = date.getHours();
    var min = date.getMinutes();
    hour = hour >= 10 ? hour : ("0" + hour);
    min = min >= 10 ? min : ("0" + min);
    return hour + ":" + min;
}

3.5、中国标准时间 获取年月日

GetDate(date){
    var year = date.getFullYear();
    var month = date.getMonth()+1;
    var day = date.getDate();
    month = month >= 10 ? month : ("0" + month);
    day = day >= 10 ? day : ("0" + day);
    return year + "-" + month + "-" + day;
}

3.6、当前时间转时间搓(13位时间搓)的三种方式

var date=new Date();
var time1 = date.getTime();
var time2 = date.valueOf();
var time3 = Date.parse(date);

3.7、时间搓转日期时间字符串

TimeDate(shijiancuo)
{
    var date=new Date(shijiancuo);
    return GetDateTime(date);//方法在前面
}

3.8、IOS标准时间(JSON时间格式)=>2023-05-06T06:12:01.451Z 转日期时间字符串

JosnTime(jsondate){
      time = time.replace(/-/, '年')
      time = time.replace(/-/, '月')
      time = time.replace(/T/, '日')
      let times = time.split('.')
      return times[0];//2023年05月06日06:12:01
}

3.9、将时间戳转换为日期对象

let timestamp = 1620274828000; // 时间戳(毫秒)
let date = new Date(timestamp); // 转化为日期对象

3.10、将日期对象转换为时间戳

let date = new Date('2021-05-06 15:00:28'); // 日期对象
let  timestamp = date.getTime(); // 时间戳(毫秒)

3.11、将日期字符串转换为日期对象

let dateString = '2021-05-06 15:00:28'; // 日期字符串
let date = new Date(dateString); // 转化为日期对象

3.12、计算两个日期之间的天数差

let date1 = new Date('2021/05/01');
let date2 = new Date('2021/05/06');

let diffDays = (date2 - date1) / (1000 * 60 * 60 * 24); // 相差天数

3.13、  十三位时间戳转年月日  用“padStart”补位   不足两位前面补0


getYMDHMS(timestamp) {
  if (!timestamp) {
       return "";
  }
  let time = new Date(timestamp)
  let year = time.getFullYear()
  const month = (time.getMonth() + 1).toString().padStart(2, '0')
  const date = (time.getDate()).toString().padStart(2, '0')
  const hours = (time.getHours()).toString().padStart(2, '0')
  const minute = (time.getMinutes()).toString().padStart(2, '0')
  const second = (time.getSeconds()).toString().padStart(2, '0')
  return year + '-' + month + '-' + date + ' ' + hours + ':' + minute + ':' + second
},

3.14、将excel(44146.4368055556)的日期格式转成yyyy-MM-dd HH:mm:ss对象

getDate(serial) {
    var utc_days = Math.floor(serial - 25569);
    var utc_value = utc_days * 86400;
    var date_info = new Date(utc_value * 1000);
    var fractional_day = serial - Math.floor(serial) + 0.0000001;
    var total_seconds = Math.floor(86400 * fractional_day);
    var seconds = total_seconds % 60;
    total_seconds -= seconds;
    var hours = Math.floor(total_seconds / (60 * 60));
    var minutes = Math.floor(total_seconds / 60) % 60;
    var date = new Date(date_info.getFullYear(), date_info.getMonth(), date_info.getDate(), hours, minutes, seconds);
    const year = date.getFullYear();
    const month = String(date.getMonth() + 1).padStart(2, '0');
    const day = String(date.getDate()).padStart(2, '0');
    const hours1 = String(date.getHours()).padStart(2, '0');
    const minutes1 = String(date.getMinutes()).padStart(2, '0');
    const formattedDate = `${year}-${month}-${day} ${hours1}:${minutes1}`;
    return formattedDate;
},

还可以用  显示 | Day.js中文网 (fenxianglu.cn)

  • 9
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值