JS日期时间转换
·
一、常见时间格式:
时间格式 | 示例 |
常见时间格式 | 2023-05-06 13:52:23 |
中国标准时间 | Sat May 06 2023 13:52:44 GMT+0800 (中国标准时间) |
JSON时间格式 | 2023-05-06T13:52:23.061Z |
二、内置方法
-
toDateString(),把 Date 对象的日期部分转换为字符串。//'Sat May 06 2023'
- toTimeString(),把 Date 对象的时间部分转换为字符串。//'14:05:29 GMT+0800 (中国标准时间)'
- toGMTString(),获取格林尼治时间字符串。//'Sat, 06 May 2023 06:03:42 GMT'
- toString(),把 Date 对象转换为字符串。//'Sat May 06 2023 14:00:02 GMT+0800 (中国标准时间)'
- toUTCString(),根据世界时(UTC),把 Date 对象转换为字符串。//'Sat, 06 May 2023 06:07:58 GMT'
- toLocaleString(),根据本地时间格式,把 Date 对象转换为字符串。//'2023/5/6 14:08:56'
- toLocaleDateString(),根据本地时间格式,把 Date 对象的日期部分转换为字符串。//'2023/5/6'
- toLocaleTimeString(),根据本地时间格式,把 Date 对象的时间部分转换为字符串。//'14:10:16'
- toJSON(),将 Date 对象转换为字符串,并格式化为 JSON 时间格式。//'2023-05-06T06:10:51.797Z'
- 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;
},
更多推荐
已为社区贡献2条内容
所有评论(0)