目录
Date()日期对象
Date() 日期对象 是一个构造函数 必须使用new 来调用创建我们的日期对象
创建日期对象
var arr = new Array(); // 创建一个数组对象
var obj = new Object(); // 创建了一个对象实例
// 只能通过构造函数的方式进行创建 new Date();
// 不传递参数,获取当前本地时间
var date = new Date();
console.log(date); //Thu Oct 28 2021 08:42:52 GMT+0800 (中国标准时间)
//console.dir(date);
// 自定义时间
// 传递多个参数 (大于等于2个参数)
// new Date(year,[month],[day],[hour],[minutes],[seconds]);
// [hour],[minutes],[seconds]:省略了默认00:00:00
// [month]:0-11 传递的时候 month -1
var date1 = new Date(2022, 10 - 1, 6, 12, 36, 48);
console.log(date1);
// 传递一个 传递一个字符串
// "2023-10-20 12:20:30" IE下有兼容問題
var date2 = new Date("2023-10-20 12:20:30");
console.log(date2);
// "2023,10,20 12:20:30" IE下有兼容問題
var date3 = new Date("2023-10-20 12:20:30");
console.log(date3);
// 2023/10/20 12:20:30
var date4 = new Date("2023/10/20 12:20:30");
console.log(date4);
格式化日期的方法
// 1格式化日期 年月日
var date = new Date();
console.log(date.getFullYear()); // 返回当前日期的年 2019
console.log(date.getMonth() + 1); // 月份 返回的月份小1个月 记得月份+1 呦
console.log(date.getDate()); // 返回的是 几号
console.log(date.getDay()); // 3 周一返回的是 1 周六返回的是 6 但是 周日返回的是 0
// 我们写一个 2019年 5月 1日 星期三
var year = date.getFullYear();
var month = date.getMonth() + 1;
var dates = date.getDate();
var arr = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'];
var day = date.getDay();
console.log('今天是:' + year + '年' + month + '月' + dates + '日 ' + arr[day]);
// 格式化日期 时分秒
var date = new Date();
console.log(date.getHours()); // 时
console.log(date.getMinutes()); // 分
console.log(date.getSeconds()); // 秒
// 要求封装一个函数返回当前的时分秒 格式 08:08:08
function getTimer() {
var time = new Date();
var h = time.getHours();
h = h < 10 ? '0' + h : h;
var m = time.getMinutes();
m = m < 10 ? '0' + m : m;
var s = time.getSeconds();
s = s < 10 ? '0' + s : s;
return h + ':' + m + ':' + s;
}
console.log(getTimer());
//2
var span = document.getElementsByTagName("span")[0];
// 初始化页面 给span进行赋值
span.innerHTML = formate();
// 设置定时器
setInterval(function () {
span.innerHTML = formate();
}, 1000);
// 日期格式化
function formate() {
// 创建本地日期对象
var date = new Date();
// 获取年月日
var year = date.getFullYear();
var month = date.getMonth() + 1;
var day = date.getDate();
// 获取星期几
var weekArr = ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"];
var week = weekArr[date.getDay()];
// 获取时分秒
var hour = date.getHours();
var minutes = date.getMinutes();
var seconds = date.getSeconds();
return year + "年" + zero(month) + "月" + zero(day) + "日 " + zero(hour) + "时" + zero(minutes) + "分" + zero(
seconds) + "秒 " + week;
}
// 补零操作
function zero(val) {
return val < 10 ? "0" + val : val;
}
日期本地格式化
var date = new Date();
console.log(date);
// 日期格式化
console.log(date.toLocaleDateString()); //2021/10/28
console.log(date.toDateString()); //Thu Oct 28 2021
// 时间格式化
console.log(date.toLocaleTimeString()); //上午9:17:00
console.log(date.toTimeString()); //09:17:00 GMT+0800 (中国标准时间)
时间戳(获得总的毫秒数)
// 获得Date总的毫秒数(时间戳) 不是当前时间的毫秒数 而是距离1970年1月1号过了多少毫秒数
// 1. 通过 valueOf() getTime()
var date = new Date();
console.log(date.valueOf()); // 就是 我们现在时间 距离1970.1.1 总的毫秒数
console.log(date.getTime());
// 2. 简单的写法 (最常用的写法)
var date1 = +new Date(); // +new Date() 返回的就是总的毫秒数
console.log(date1);
// 3. H5 新增的 获得总的毫秒数
console.log(Date.now());
倒计时效果
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
span {
display: block;
width: 400px;
height: 50px;
line-height: 50px;
margin: 100px auto;
border: 1px solid orangered;
text-align: center;
font-size: 16px;
font-weight: bold;
}
</style>
</head>
<body>
<span></span>
<script>
// 获取元素
var span = document.getElementsByTagName("span")[0];
// 页面初始化
downCount();
// 每隔一秒钟就调用一次
setInterval(downCount, 1000);
// 倒计时
function downCount() {
// 当前时间
var curDate = new Date();
// 目标时间
var tarDate = new Date("2021/10/28 17:20:00");
// 获取时间戳
// var curDateMillSeconds = curDate.getTime();
// var tarDateMillSeconds = tarDate.getTime();
// console.log(tarDateMillSeconds - curDateMillSeconds);
// 直接日期对象相减 可以得到毫秒差
// console.log(tarDate -curDate);
// 秒差
var diffSeconds = parseInt((tarDate - curDate) / 1000);
// 转为 天 时 分 秒
var day = parseInt(diffSeconds / 86400);
var hour = parseInt(diffSeconds % 86400 / 3600);
var minutes = parseInt(diffSeconds % 3600 / 60);
var seconds = diffSeconds % 60
// 给span进行赋值
span.innerHTML = "距离放学:" + zero(day) + "天" + zero(hour) + "时" + zero(minutes) + "分" + zero(seconds) + "秒";
}
// 补零操作
function zero(val) {
return val < 10 ? "0" + val : val;
}
</script>
</body>
</html>