日期时间对象date
js 提供的内置构造函数,专门用来获取时间的
- 作用:处理日期时间
- 创建日期对象:
var date = new Date() //构造函数方式
实例对象 对象名 引用变量
表示当前时间 以中国标准时间形式显示
- 创建指定时间的对象:
var date = new Date(2021,10,21,10,10,03)//2021年10月21日10点10分03秒
function test1(){
var date = new Date() //当前时间
console.log(date) // Thu Aug 25 2022 09:30:30 GMT+0800 (中国标准时间)
}
function test2(){
var date = new Date(2021,10,1,10,10,01)
var date = new Date('2021-10-1 13:10:01')
console.log(date)
}
// test2()
或者字符串形式:
var date = new Date(2021-10-21 10:10:03)//2021年10月21日10点10分03秒
方法
- 获取此时的日期 var currentTime = new Date()
- 年 var year = currentTime.getFullYear()
- 月 var month = currentTime.getMonth() 从0开始,通常加1
- 日 var Day=currentTime.getDate()
- 星期 var day = currentTime.getDay()
- 小时 var hours = currentTime.getHours()
- 分 var minutes = currentTime.getMinutes()
- 秒 var seconds = currentTime.getSeconds()
- 执行时间到格林威治时间的毫秒数 var time = currentTime.getTime()
格式化日期
格式化之前写法:
格式化:
1、utils.js js文件
/*
* 格式化当前日期时间
*/
function formateCurrentTime(type) {
var time = new Date() // Thu Aug 25 2022 09:48:16 GMT+0800 (中国标准时间)
var year = time.getFullYear()
var month = time.getMonth()
var date = time.getDate()
var hours = time.getHours()
var minutes = time.getMinutes()
var seconds = time.getSeconds()
switch (type) {
case 0:
return `${year}年${month}月${date} ${hours}时${minutes}分${seconds}秒`
case 1:
return `${year}/${month}/${date} ${hours}:${minutes}:${seconds}`
case 2:
return `${year}-${month}-${date} ${hours}:${minutes}:${seconds}`
default:
return `${year}-${month}-${date} ${hours}:${minutes}:${seconds}`
}
}
/**
* 格式化日期时间
* @param {*} fmt 格式: yyyy年mm月dd hh时MM分ss秒 , yyyy-mm-dd hh:MM:ss
* @param {*} date 日期时间对象
* @returns
*/
function dateFtt(fmt, date) {
var o = {
'M+': date.getMonth() + 1, //月份从0开始
'd+': date.getDate(), //日
'h+': date.getHours(), //小时
'm+': date.getMinutes(), //分
's+': date.getSeconds(), //秒
'q+': Math.floor((date.getMonth() + 3) / 3), //季度
S: date.getMilliseconds(), //毫秒
}
if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length))
for (var k in o)
if (new RegExp('(' + k + ')').test(fmt))
fmt = fmt.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k] : ('00' + o[k]).substr(('' + o[k]).length))
return fmt
}
//创建时间格式化显示
function getCurrentTime() {
var crtTime = new Date() //当前时间
// return dateFtt('yyyy-MM-dd hh:mm:ss', crtTime) //直接调用公共JS里面的时间类处理的办法
return dateFtt('yyyy年MM月dd日 hh:mm:ss', crtTime) //直接调用公共JS里面的时间类处理的办法
}
2、html代码
<script src="./utils.js"></script>
<script>
var currentTime = formateCurrentTime(1) //yyyy-mm-dd hh:MM:ss yyyy年mm月dd hh时MM分ss秒
var currentTime1 = getCurrentTime()
document.write(currentTime1)
</script>
计算时间差
- 计算时间毫秒差值 格林威治时间: 计算机时间的元点 规则: 1970年1月1日(00:00:00 GMT)
- 换算 秒->分->小时->天->年
//计算一下 2019-01-01 00:00:00 到 2019-01-03 04:55:34 的时间差?
<script>
var time1 = new Date('2019-01-01 00:00:00')
var time2 = new Date('2019-01-03 10:01:00')
var time = time2.getTime() - time1.getTime() // 毫秒差
// 换算-天 相差的总毫秒/ 1天的毫秒 = 相差的天数
var day = time/(1000 * 60 * 60 * 24)
day = Math.floor(day)
console.log(day)
// 相差的总毫秒 - day天的毫秒
var hoursTime = time - day * (1000 * 60 * 60 * 24)
var hours = hoursTime/(1000 * 60 * 60)
hours = Math.floor(hours)
console.log(hours)
//剩下的时分秒的毫秒数 /一小时的毫秒数
var minutesTime = time - day* (1000 * 60 * 60 * 24)-hours * (1000 * 60 * 60)
var minutes = minutesTime/(1000 * 60)
minutes = Math.floor(minutes)
// 剩下的分秒的毫秒数 - 一分的毫秒数
var secondsTime = time - day * (1000 * 60 * 60 * 24)-hours * (1000 * 60 * 60)-minutes* (1000 * 60)
var seconds = secondsTime/1000
document.write(day+'天'+hours+'小时'+ minutes+'分'+seconds+'秒')
</script>
练习
//求你出生到现在经历多少天多少小时?
var time1 = new Date('1999-02-07 23:05:09')
var time2 = new Date()
var time = time2.getTime() - time1.getTime() // 总毫秒差
// 换算--天 相差的总毫秒/ 1天的毫秒 = 相差的天数
var day = time/(1000 * 60 * 60 * 24)
//向下取整
day = Math.floor(day)
// console.log(day)
// 相差的总毫秒 - day天的毫秒=剩下的时分秒的毫秒数
var hoursTime = time - day * (1000 * 60 * 60 * 24)
var hours = hoursTime/(1000 * 60 * 60)
hours = Math.floor(hours)
// console.log(hours)
//剩下的时分秒的毫秒数 /一小时的毫秒数
var minutesTime = time - day* (1000 * 60 * 60 * 24)-hours * (1000 * 60 * 60)
var minutes = minutesTime/(1000 * 60)
minutes = Math.floor(minutes)
// 剩下的分秒的毫秒数 - 一分的毫秒数
var secondsTime = time - day * (1000 * 60 * 60 * 24)-hours * (1000 * 60 * 60)-minutes* (1000 * 60)
var seconds = secondsTime/1000
document.write(day+'天'+hours+'小时'+ minutes+'分'+seconds+'秒')
// console.log(minutes)