九、Date
9.1 了解时间
- GMT:格林尼治标准时(Greenwich Mean Time),俗称“天文学时间”
- UTC:协调世界时(Universal Time Coordinated),“原子物理时间”,它更加精确,50亿年才误差1秒
- 时区:为了克服时间上的混乱,1884年在华盛顿召开的一次国际经度会议(又称国际子午线会议[1])上,规定将全球划分为24个时区(东、西各12个时区)。规定英国(格林尼治天文台旧址)为中时区(零时区)、东1-12区,西1-12区。每个时区横跨经度15度,时间正好是1小时
- 闰年:四年一闰,百年不闰,四百年再闰
- 纪元时间(UNIX TIME):1970-1-1零时
9.2 创建日期时间
//1)创建当前时间的日期和时间
var d = new Date();//得到的是代码执行时的时间(本地时间)
//2)创建指定日期的时间和日期
var d = new Date("2015/08/22");
var d = new Date(56521211021);//参数为距1970-1-1零时的毫秒数
9.3 获取/设置时间
- 获取年月日
- getFullYear()/setFullYear(2014)
- getMonth()/setMonth(8)注意:获取月份是从0开始的
- getDate()/setDate(25)
- 获取星期
- getDay() 0-6:星期天-星期六
- 获取时分秒
- getHours()/setHours()
- getMinutes()/setMinutes()
- getSeconds()/setSeconds()
9.4 日期处理
- getTime()/setTime():获取/修改某个日期自1970年1月1日0时以来的毫秒数
- toLocaleDateString(); 以特定地区格式显示年、月、日
- toUTCString(); 转换成UTC时间
ES5方法
- Date.parse(“2015-08-24”)//返回指定日期距1970-1-1零时的毫秒数
PS:转换格式默认支持2015-08-24或2015/08/24
- Date.now();//返回执行这行代码时距1970-1-1零时的毫秒数
9.5 延迟与定时器(重要)
- setTimeout(fn,200):两百毫秒后执行fn这个函数(只执行一次),返回一个id标识
- clearTimeout(timeoutID):清除指定id标识的延迟操作
- setInterval(fn,30):每隔30毫秒执行一次fn这个函数,返回一个id标识
- clearInterval(intervalID):清除指定id标识的定时器操作
var timer = setTimeout(function(){
//2s后执行这里的代码
},2000);
//清除
clearTimeout(timer);
日期格式化
/**
* 该方法返回日期的格式 yyyy-MM-dd HH:mm:ss
* @param num 如果用户传入了参数那么就返回用户所需要的日期对应的格式,
* 如果用户没有传入, 那么就返回当前返回当前系统日期
*/
function formatDate(num,format) {
var date = null;
// 用户传入num
if(num) {
date = new Date(num);
}else { // 用户没有传入
date = new Date();
}
var year = date.getFullYear(); //年份
var month = date.getMonth(); //月份
var day = date.getDate(); //获取日期
var hour = date.getHours(); //小时
var minute = date.getMinutes(); //分钟
var second = date.getSeconds(); //获取秒
// var fullMonth = (month + 1) < 10 ? '0' + (month + 1) : (month + 1);
var fullMonth = getNumFullFormate(month + 1); //获取月份的完整格式
var fullDay = getNumFullFormate(day);
var fullHour = getNumFullFormate(hour);
var fullMinute = getNumFullFormate(minute);
var fullSecond = getNumFullFormate(second);
if(format && ''!=format){
if('yyyy-MM-dd'==format){
return year + "-" + fullMonth + "-" + fullDay;
}
if('yyyy-MM-dd HH:mm:ss'==format){
return year + "-" + fullMonth + "-" + fullDay + " " + fullHour + ":" + fullMinute + ":" + fullSecond;
}
}
// 2020-01-23 12:12:23
return year + "-" + fullMonth + "-" + fullDay + " " + fullHour + ":" + fullMinute + ":" + fullSecond;
}
function getNumFullFormate(num) {
return num < 10 ? '0' + num : num;
}