Date.parse()
//Date.parse()方法接收一个表示日期的字符串参数,尝试将这个字符串转换为表示该日期的毫秒数
//如果接收的参数并不表示日期,则该方法返回NaN
let someDate = Date.parse();
console.log(someDate);// NaN
let someDate2 = Date.parse(\'2021-08-24 00:00:00\');
console.log(someDate2);//162973440000
let someDate3 = Date.parse(\'Aug 24,2021\');
console.log(someDate3);//162973440000
let someDate4 = Date.parse(\'8/24/2021\');
console.log(someDate4);//1629734400000
Date.UTC()
//Date.UTC(年,月(0表示1月,以此类推),日(1~31,默认是1),时,分,秒),而且年和月是必需的
let t1 = Date.UTC(2021, 7, 24, 00, 00, 00);
console.log(t1); //1629763200000
//Date构造函数
let date = new Date(2021, 7, 24, 00, 00, 00);
console.log(date); //Tue Aug 24 2021 00:00:00 GMT+0800 (中国标准时间)
//Date.now()返回方法执行时日期和时间的毫秒数
let n = Date.now();
console.log(n);
toLocaleString(),toString(),valueOf()
//toLocaleString()返回与浏览器运行的本地环境一致的时间和日期
let date = new Date(2021, 7, 24, 00, 00, 00);
console.log(date); //Tue Aug 24 2021 00:00:00 GMT+0800 (中国标准时间)
console.log(date.toLocaleString()); //2021/8/24上午12:00:00
//toString()方法将日期对象转为字符串格式
let date2 = new Date(2021, 7, 24, 00, 00, 00)
console.log(date.toString()); //Tue Aug 24 2021 00:00:00 GMT+0800 (中国标准时间)
//valueOf()方法返回的是日期的毫秒表示
let date3 = new Date(2021,7,24,00,00,00);
console.log(date3.valueOf());//1629734400000
let d1 = new Date(2021,0,1);//2021年1月1日
let d2 = new Date(2021,1,1);//2021年2月1日
//d2的毫秒数大于d1的毫秒数
console.log(d1<d2);//true
日期格式化方法
let date = new Date(2021,7,24,00,00,00);
//1.toDateString()显示日期的周,月,日,年
console.log(date.toDateString());//Tue Aug 24 2021
//2.toTimeString()显示日期的时分秒和时区
console.log(date.toTimeString());//00:00:00 GMT+0800 (中国标准时间)
//3.toLocaleDateString()显示日期的年月日
console.log(date.toLocaleDateString());//2021/8/24
//4.toLocaleTimeString()
console.log(date.toLocaleTimeString());//上午12:00:00
//5.toUTCString()显示世界统一时间(UTC日期)
console.log(date.toUTCString());//Mon, 23 Aug 2021 16:00:00 GMT
日期/时间组件方法
let date = new Date(2021,7,24,00,00,00);
//getTime()方法返回日期的毫秒表示,与valueOf()相同
console.log(date.getTime());//1629734400000
//setTime()方法设置日期的毫秒表示
let s = new Date();
s.setTime(date.getTime())
console.log(s);//Tue Aug 24 2021 00:00:00 GMT+0800 (中国标准时间)
//getFullYear()用于获取年
console.log(date.getFullYear());//2021
//getUTCFullYear()用于获取UTC日期的年
console.log(date.getUTCFullYear());//2021
//setFullYear(year)用于设置日期的年,参数year必须是四位数
let date1 = new Date(2021,7,24,00,00,00);
date1.setFullYear(2022);
console.log(date1.getFullYear());//2022
//setUTCFullYear(year)用于设置UTC日期的年,参数year必须是四位数
let date2 = new Date(2021, 7, 24, 00, 00, 00);
date2.setUTCFullYear(2022);
console.log(date2.getUTCFullYear());//2022
//getMonth()用于获取月,0表示1月,以此类推
console.log(date.getMonth());//7
//getUTCMonth()用于获取UTC日期的月,0表示1月,以此类推
console.log(date.getUTCMonth());//7
//setMonth()用于设置日期的月,取值在0-11,大于11则加年
let date3 = new Date(2021,7,24,00,00,00);
date3.setMonth(8);
console.log(date3.getMonth());//8
//setUTCMonth()设置UTC日期的月,取值在0-11,大于11则加年
let date4 = new Date(2021,7,24,00,00,00);
date4.setUTCMonth(8);
console.log(date4.getUTCMonth());//8
//getDate()用于获取日期中的日(1-31)
console.log(date.getDate());//24
//getUTCDate()用于获取UTC日期的日,因为UTC时间和本地时间会相差八个小时,所以如果设置的时间在八点之前那么日就是23日,八点后才是24日
let date5 = new Date(2021,7,24,08,00,00)
console.log(date5.getUTCDate());//24
//setDate()用于设置日期中的日,如果设置的数值大于本月最大天数则加月
let date6 = new Date(2021,7,24,00,00,00);
date6.setDate(25);
console.log(date6.getDate());//25
//setUTCDate()用于设置UTC日期中的日,如果设置的数值大于本月最大天数则加月
let date7 = new Date(2021,7,24,08,00,00)
date7.setUTCDate(25);
console.log(date7.getUTCDate());//25
//getDay()用于获取日期中的周几,0表示周日,1-6表示周一至周六
console.log(date.getDay());//2
//getUTCDay()用于获取UTC日期中的周几,0表示周日,1-6表示周一至周六
console.log(date5.getUTCDay());//2
//getHours()用于获取日期中的时(0-23)
console.log(date.getHours());//0
//getUTCHours()用于获取UTC日期中的时,因为UTC时间和本地时间相差八小时,所以本地时间的八点就是UTC时间的0点
console.log(date7.getUTCHours());//0
//setHours()用于设置日期中的时,如果设置的数值大于23则加日
let date8 = new Date(2021,7,24,00,00,00);
date8.setHours(8);
console.log(date8.getHours());//8
//setUTCDate()用于设置UTC日期中的时,如果设置的数值大于23则加日
let date9 = new Date(2021,7,24,08,00,00)
date9.setUTCHours(10);
console.log(date9);//Tue Aug 24 2021 18:00:00 GMT+0800 (中国标准时间)
//getMinutes();用于获取日期中的分
console.log(date.getMinutes());//0
//getUTCMinutes();用于获取UTC日期中的分
console.log(date9.getUTCMinutes());//0
//setMinutes()用于设置日期中的分
let date10 = new Date(2021,7,24,00,00,00);
date10.setMinutes(8);
console.log(date10.getMinutes());//8
//setUTCMinutes()用于设置UTC日期中的分
let date11 = new Date(2021,7,24,08,00,00)
date11.setUTCMinutes(10);
console.log(date11.getUTCMinutes());//10
//getSeconds()用于获取日期中的秒
console.log(date.getSeconds());//0
//getUTCSeconds()用于获取UTC日期中的秒
console.log(date11.getUTCSeconds());//0
//setSeconds();用于设置日期中的秒,取值大于59则加分
let date12 = new Date(2021,7,24,00,00,00);
date12.setSeconds(15);
console.log(date12.getSeconds());//15
//setUTCSeconds()用于设置UTC日期中的秒,取值大于59则加分
let date13 =new Date(2021,7,24,08,00,00);
date13.setUTCSeconds(15);
console.log(date13.getUTCSeconds());//15
//getMilliseconds()用于获取日期中的毫秒
console.log(date.getMilliseconds());//0
//getUTCMilliseconds()用于获取UTC日期中的毫秒
console.log(date13.getUTCMilliseconds());//0
//setMilliseconds()用于设置日期中的毫秒
let date14 = new Date(2021,7,24,00,00,00);
date14.setMilliseconds(30);
console.log(date14.getMilliseconds());//30
//setUTCMillseconds()
let date15 = new Date(2021,7,24,08,00,00);
date15.setUTCMilliseconds(30);
console.log(date15.getUTCMilliseconds());//30
简易日历案例
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>简易日历</title>
<style>
* {
margin: 0;
padding: 0;
}
ul li {
list-style: none;
}
a {
color: white;
text-decoration: none;
}
a:hover {
color: skyblue;
}
body {
min-height: 100vh;
display: flex;
justify-content: center;
align-items: center;
background-color: #000;
}
.container {
width: 300px;
color: white;
background-color: rgba(255, 255, 255, .3);
border-radius: 5px;
backdrop-filter: blur(50px);
text-align: center;
}
.container p {
width: 100%;
display: flex;
line-height:30px;
}
.container p span {
flex: 1;
}
.year {
font-weight: bold;
}
.weekly{
width:100%;
display:flex;
}
.weekly li{
flex:1;
}
.everyDay li{
float:left;
width:42.86px;
height:30px;
}
</style>
</head>
<body>
<div class="container">
<p>
<span class="lastMonth"><a href="#">上一月</a></span>
<span class="year"></span>
<span class="nextMonth"><a href="#">下一月</a></span>
</p>
<h5 class="month"></h5>
<ul class="weekly">
<li>日</li>
<li>一</li>
<li>二</li>
<li>三</li>
<li>四</li>
<li>五</li>
<li>六</li>
</ul>
<ul class="everyDay">
</ul>
</div>
<script type="text/javascript">
var date = new Date();
fn();
function fn(){
//获取year元素
let year = document.querySelector(\'.year\');
//获取month元素
let month = document.querySelector(\'.month\');
//获取everyDay元素
var everyDay = document.querySelector(\'.everyDay\');
everyDay.innerHTML=\'\';
//获取年月日
let Y = date.getFullYear();
let M = date.getMonth();
let D = date.getDate();
year.innerHTML = Y;
let arr = [\'一月\', \'二月\', \'三月\', \'四月\', \'五月\', \'六月\', \'七月\', \'八月\', \'九月\', \'十月\', \'十一月\', \'十二月\'];
month.innerHTML=arr[M];
//获取当前月的一号是周几
let firstDayWeek = new Date(Y,M,1).getDay();
//获取当前月有多少天
//new Date()第一个参数是年,第二个参数是月(0表示一月),第三个参数表示日(1-31),第三个参数如果是0则会往前推一个月,如果此时M是0,0+1=1,那么现在就是二月了,此时想获取的是一月的天数,那么第三个参数为0则往前推一个月就是一月了
let fate = new Date(Y,M+1,0).getDate();
for(let i =1;i<=fate;i++){
if(i==D){
let li = document.createElement(\'li\')
li.innerHTML=i;
li.style.color="skyblue"
everyDay.appendChild(li);
}else{
let li = document.createElement(\'li\')
li.innerHTML=i;
everyDay.appendChild(li);
}
}
for(let i = 0;i<firstDayWeek;i++){
let li = document.createElement(\'li\');
everyDay.insertBefore(li,everyDay.children[0]);
}
}
document.querySelector(\'.lastMonth\').onclick=function(){
date.setMonth(date.getMonth()-1);
fn();
}
document.querySelector(\'.nextMonth\').onclick=function(){
date.setMonth(date.getMonth()+1);
fn();
}
</script>
</body>
</html>
