以下内容均为本人在项目开发中所使用过的,如果有需要可以进行参考,也欢迎大家能够留言进行补充和修改!共同进步🤣
1、 获取当前时间:
// 获取系统当前时间
var myDate = new Date(); //例: Wed Jan 27 2021 10:42:51 GMT+0800 (中国标准时间)
// 通过时间戳和指定日期,得到中国标准时间,再进行指定格式的切换
// 时间戳(毫秒)
var myDate = new Date(1611715656370); // 例:Wed Jan 27 2021 10:47:36 GMT+0800 (中国标准时间)
// 指定日期
var myDate = new Date("2012-12-10 12:15:15") // 例:Mon Dec 10 2012 12:15:15 GMT+0800 (中国标准时间)
code注:得到中国标准时间(myDate)后,再进行下面的格式转换
2、获取指定格式时间:
// 获取指定格式时间
// 获取当前日期
myDate.toLocaleDateString(); // 例:"2021/1/27"
// 获取当前时间
myDate.toLocaleTimeString(); // 例:"上午9:58:30"
// 获取日期与时间
myDate.toLocaleString( ); //例:"2021/1/27 上午9:58:30"
// 获取年
myDate.getYear(); // 例:121
myDate.getFullYear(); // 例:2021
// 获取月((0-11,0代表1月) 因为是从0开始,获取的月份得加 1)
myDate.getMonth(); // 例:当获得的结果为2的时候,实际的月份为:2+1
// 获取日(1-31)
myDate.getDate(); // 例:27
// 获取星期(0-6,0代表星期天)
myDate.getDay(); // 例:3
// 获取当前小时数(0-23)
myDate.getHours(); // 例:10
// 获取当前分钟数(0-59)
myDate.getMinutes(); // 例:47
// 获取当前秒数(0-59)
myDate.getSeconds(); // 例:36
// 获取当前毫秒数(0-999)
myDate.getMilliseconds(); // 例:370
3、获取时间戳:
// 获取系统当前时间
var myDate = new Date(); //例: Wed Jan 27 2021 10:42:51 GMT+0800 (中国标准时间)
// 方法一(毫秒级时间戳)(常用):
var timestamp=myDate.getTime(); // 例:1280977330748
// 方法二(毫秒级时间戳):
var timestamp =(myDate).valueOf(); // 例:1280977330748
// 方法三: ( 获取秒级时间戳 )
var timestamp = myDate.getTime() / 1000; // 例:1280977330000
var timestamp =Date.parse(myDate) / 1000; // 例:1280977330000
// 注意:这里得到的结果将后三位(毫秒)转换成了000显示,使用时可能会出现问题。
// 例如动态添加页面元素id的时候,不建议使用。
4、时间转换:
// 封装方法
// 获取时间差
// start和end 是任何格式的时间
getReduceTimes(start,end){
// 获取开始和结束的时间,算出时间戳的差(得到他们相差的时间)
let startDate = new Date(start).getTime();
let endDate = new Date(end).getTime();
let endReduceStart = endDate-startDate
// 总秒数
let totalSeconds = Math.floor(endReduceStart / 1000);
// 天数
let day = Math.floor(second / 3600 / 24);
// 小时
let hour = Math.floor(second / 3600 % 24);
// 分钟
let minute = Math.floor(second / 60 % 60);
// 秒
let second = Math.floor(second % 60);
let dateTimes = {
totalSeconds,
day,
hour,
minute,
second
}
return dateTimes; // 返回时间差的对象,再从中获取想要的数据
}
5、vue中设置时间过滤器:
// 示例:
<template>
<div>{{ a | data}}</div>
</template>
export default {
data() {
return {
a: Date.now()
}
},
filters:{
data(date) {
let myDate = new Date(date);
let year = myDate.getFullYear();
let month = (myDate.getMonth() + 1) < 10 ? '0' + (myDate.getMonth() + 1) : (myDate.getMonth() + 1);
let day = myDate.getDate() < 10 ? '0' + myDate.getDate() : myDate.getDate();
let hour = myDate.getHours() < 10 ? '0' + myDate.getHours() : myDate.getHours();
let minutes = myDate.getMinutes() < 10 ? '0' + myDate.getMinutes() : myDate.getMinutes();
let seconds = myDate.getSeconds() < 10 ? '0' + myDate.getSeconds() : myDate.getSeconds();
return year+ '-' + month + '-' + day + ' ' + hour + ':' + minutes + ':' + seconds; // 返回时间格式
}
}
}
5、中国标准时间 转换成 格林尼治时间方式方法:
// 中国标准时间转换成格林尼治时间
function formatDate(dateTime){
let timestamp = dateTime.getTime();
let newDate = new Date(dateTime + 8 * 3600 * 1000);
return newDate.toISOString();
}
let dealDate = 'Thu Apr 29 2021 15:13:21 GMT+0800 (中国标准时间)';
const geLinDate = formatDate(new Date(dealDate));
console.log(geLinDate); // "2021-04-29T15:13:21.000Z"
6、获取两个时间段之间的天数:
// 1.通过时间获取:
getDay(startTime, endTime){
let startTimeStamp = Date.parse(new Date(startTime));
let endTimeStamp = Date.parse(new Date(endTime));
let date = endTimeStamp - startTimeStamp;
let days = Math.ceil(date/(3600*24*1000));
return days
}
getDay('2021-09-01', '2021-09-14');
// 2.通过时间戳获取:
getDay(startTime, endTime){
let befo reDate = startTime.getTime();
let nowDate = endTime.getTime();
let date = nowDate - beforeDate
let days = Math.ceil(date/(3600*24*1000))
return days
}
getDay(new Date("2021-09-01"),new Date())
向上取整: Math.floor(4.2) // 4
向下取整: Math.ceil(4.2) // 5