创建Date对象
var dateObj=new Date();
方法
- 将日期转为字符串
toLocaleString()
toLocaleDateString()
toLocaleTimeString()
- 获取年、月、日、小时、分、秒
○1)getYear() //两位的年(2000年前)或三位的年[1900]
获取两位数的年,从1900年开始计算,现在这个方法基本上已经没弃用
console.log(d.getYear());
○2)getFullYear() //四位的年
获取完整的四位数的年,使用的比较多
console.log(d.getFullYear());
○ 3)getMonth() //月份+1
获取月份,返回值为0-11,表示1月到12月,所以获取到月份之后需要+1
console.log(d.getMonth()+1); // 当前月+1
○4)getDate() //日
获取天,返回值为今天是几号
console.log(d.getMonth()+1); // 当前月+1
○ 5)getHours() //小时
console.log(d.getHours()); // 当前月+1
○6)getMinutes() //分钟
console.log(d.getMinutes()); // 当前分钟
○7)getSeconds() //秒
console.log(d.getMinutes()); // 当前秒钟
○ 8)getTime() //1970 年 1 月 1 日至今的毫秒数
时间戳专门用来计算时间的差值,或者倒计时等功能
var d = new Date();
// 1. 通过getTime获取
console.log(d.getTime()); // 当前秒钟
// 2. 通过valueOf获取
console.log(d.valueOf());
// 3. H5新增的获取毫秒树的方式
console.log(Date.now());
// 4. 添加+号[把日期对象转为数字类型]
console.log(+new Date());
- 定时器
setInterval(函数体,时间(毫秒),参数(传递给函数的参数))
// 时间跳动案例
function getT(){
// 获取时间
var d = new Date();
var year = d.getFullYear();
var month = d.getMonth()+1;
var day = d.getDate();
var h = d.getHours();
var m = d.getMinutes();
var s = d.getSeconds();
var ms = d.getMilliseconds();
var oTime = document.getElementById('times');
oTime.innerHTML = year+'-'+month+'-'+day+' '+h+':'+m+':'+s+' '+ms;
}
function stop(){
// 清除某个定时器 clearInterval(定时器的名称);
clearInterval(myTime);
}
- 怎么计算时间差
使用时间戳【UNIX时间戳,timestamp】计算时间差
2021-9-5 10:30:20 -> 1630809020000
2020-8-9 12:30:45 -> 1596947445000
差多少年,天,小时,分钟,秒钟
时间戳 参照时间: 1970/1/1 0:0:0(格林威治时间)
1970/1/1 8:0:0(北京时间)
时间戳:d.getTime(); 单位是毫秒数
计算公式
d = parseInt(总秒数/60/60/24) // 天数
h = parseInt(总秒数/60/60%24) // 小时
m = parseInt(总秒数/60%60) // 分钟
s = parseInt(总秒数%60) // 秒
var aTime = new Date('2021-9-5 10:30:20'); // 指定的某个时间
var bTime = new Date('2021-8-5 8:20:10'); //
var cha = aTime.getTime() - bTime.getTime();
if(cha<=0){
console.log('时间输入有误!');
}else{
var miao = cha / 1000; // 秒的单位
var s = miao % 60; // 秒
var fen = parseInt(miao / 60); // 分钟的单位
var m = fen%60;// 分钟
var hour = parseInt(fen / 60); // 小时的单位
var h = hour % 24; // 小时
var day = parseInt(hour / 24); // 天
var d = day % 365;
var y = parseInt(day/365); // 年
console.log('两个时间相差:'+y+'年,'+d+'天,'+h+'小时,'+m+'分钟,'+s+'秒钟');
}
案例:苏宁易购显示抢购活动
5. 设置时间
a.直接设置年月日,时分秒
new Date() 获取当前时间
new Date(字符串 / 时间戳 / 值); 获取指定时间
字符串:“2021-2-3 12:23:34”
时间戳:1617589820000
值: 2012,5,6,12,30,00
var d = new Date('2009-11-12 08:20:30'); // 正常字符串时间的表示方式
var d = new Date('Jan 1 2001 05:20:10'); // 日期时间对象返回的格式
var d = new Date(2020,10,10,10,20,30); // js的时间格式
var d = new Date(1607061589000); // 时间戳
b.简单设置时间
set… [用的不多]
setMonth();
setDate();
setFullYear();
案例1:某人从2008-8-8号过起了三天打鱼两天筛网的日期,问:今天该打鱼还是筛网,明天呢?明年的今天呢?
// 2008-8-8 张三 打鱼晒网的日期 - 三天打鱼两天筛网
// 今天该打鱼还是筛网 - 获取今天日期
// 经历了多少天:new Date - 2008-8-8
var now = new Date(); // 当前
var start = new Date('2008-8-8');
var cha = now - start; // 单位 ms
var s = parseInt(cha/1000);
var m = parseInt(s/60);
var h = parseInt(m/60);
var d = parseInt(h/24);
var yu = d % 5;
if(yu<3){
console.log('晒网');
}else{
console.log('打鱼');
}
案例2:输入年份生成日历
<style>
body {
text-align: center;
}
.box {
margin: 0 auto;
width: 880px;
}
.title {
background: #ccc;
}
table {
height: 200px;
width: 200px;
font-size: 12px;
text-align: center;
float: left;
margin: 10px;
font-family: arial;
}
</style>
<script>
var year = parseInt(prompt('输入年份:', '2022')); // 制作弹窗输入年份,默认为2022年
document.write(calendar(year));//调用函数生成指定年份的年历
function calendar(year){
var html = "<div class='box'>";
for(var m=0;m<=11;m++){
// 获取每月的第一天的星期
var w = new Date(year,m).getDay();
html += `<table><tr class="title"><td colspan='7'>${year}年${m}月</td></tr>`;
html += `<tr><td>日</td><td>一</td><td>二</td><td>三</td><td>四</td><td>五</td><td>六</td></tr>`;
// 获取每月的天数
var max = new Date(year,m,0).getDate();
html += '<tr>'
for(var d=1; d <= max; d++){
//如果该月的第1天不是星期日,则填充空白
if (w && d == 1) {
html += '<td colspan ="' + w + '"> </td>';
}
html += '<td>' + d + '</td>';
if (new Date(year,m,d).getDay()==6) {//如果星期六不是该月的最后一天,则换行
html += '</tr><tr>';
} else if (d == max) {//该月的最后一天,闭合</tr>标签
html += '</tr>';
}
}
html += '</tr>'
}
html += '</table></div>';
return html;
}
</script>