1.Date
1.作用:保存一个日期或事件,提供操作日期和时间的API
2.创建方法:
1.获取系统当前日期和时间 let now = new Date(); 注意:只能获取客户端本地时间,无法获取服务器时间 2.自定义日期和时间 let now = let Date("yyyy/MM/dd hh:mm:ss"); 3.将ms转换为客户端日期对象 let date = new Date(ms); 在网络间传输时间或在服务器存储时间,都用整数(毫秒数/秒数) 4.复制一个日期对象 let date2 = new Date(date1); //将date1里的日期复制给date2 原因:因为日期计算都默认直接修改原日期对象
练习:设置一个时间,计算当前时间距离设置的时间的天时分秒
let end = new Date("2020/11/16 12:00"); let now = new Date(); //从客户端获取时间 let s=parseInt((end-now)/1000); let d=parseInt(s/(60*60*24)); let h=parseInt(s%(60*60*24)/3600); let m=parseInt(s%3600/60); s=s%60; document.write("距离指定时间还有:"+d+"天"+h+"小时"+m+"分"+s+"秒");
3.API
1.单位 FullYear Month Date Day --都没有s结尾 Hours Minutes Seconds Milliseconds --都有s结尾 2.每个单位都有一对getxxx()/setxxx()方法 getxxx()负责获取单位的数值 比如:now.getFullYear() //2020 now.getHours() //11 setxxx()负责修改指定单位的数值 比如:now.setFullYear(2022) now.setDate(20) 其中:setxxx(n) n可以是任意值,setxxx(n)可自动调整时间进制 注意:day没有setDay()方法,因为day是推算出来的 3.取值范围 Month:0~11 注意:js中的月份比现实中小1,读取或修改时,可能需要+1或-1 Date:1~31 Day:0~6 日~六 Hours:0~23 Minutes/Second:0~59
4.日期计算
1.两日期对象可直接相减:结果是毫秒差 2.对任意单位做加减: 先取值:let d=now.getDate(); 做加减:d+=30; 放回去:now.setDate(d); //setxxx()可自动调整时间进制 注意:setxxx() 会直接修改原日期对象 解决:先复制副本,再用副本计算 简写:now.setDate(now.getDate()+30);
5.将日期转为字符串
date.toString(); 转化为当地时间的完整格式 date.toLocaleStirng(); 转化为当地时间的简化版格式 date.toLocaleDateString(); 简化版格式,仅保留日期部分 date.toLocaleTimeString(); 简化版格式,仅保留时间部分 date.toGMTString(); 转化为国际标准时间 自定义格式化日期函数
2.Error
1.错误定义:程序执行过程中,导致程序无法正常执行的异常情况
错误处理:即使程序出错,也保证程序不会强行退出的机制
2.语法
try{ 可能出错的正确代码 }catch(err){ //err:错误对象,发生错误时,自动创建的保存错误信息的对象 只有发生错误时,才执行的错误处理代码 错误发生后应该做:1.提示用户 2.保存进度 3.记录日志 } 问题:放在try…catch中的代码,执行效率可能降低,且生成错误对象,占用内存空间 解决:如果可以提前预知错误,则首选 if…else…来提前预防错误
3.错误类型
SyntaxError:语法错误 ReferenceError:引用错误,要用的变量没找到 TypeError:类型错误,错误的使用了对象的方法或 () 或 [] RangeError:范围错误,参数超范围 URIError: URI错误, 如果请求所使用的url拼接错误 EvalError:Eval错误
4.抛出错误
函数的作者向函数的调用者抛出自定义错误对象,告知调用者错误的使用了函数 语法:throw new Error("自定义错误提示信息");
原文:https://www.cnblogs.com/hourglas/p/13984340.html