javascript基础--时间对象,引用类型
基础类型有哪些?复杂类型有哪些?有什么特征?
基础类型:number,boolean,string
复杂类型:object,array,function
特征:
在上面的图片,可以看出基础类型和复杂类型的特征,因为不是很清楚计算机基础,就不通过计算机基础来描述了
时间对象:
JavaScript内置时间对象,Date类型使用 UTC国际时间,是从1970年1月1日算起的。Date类型保存的日期能够精确到1970年1月1日之前或之后的100000000年。
var now = new Date();/生成一个日期对象
Date.parse(日期)生成距离1970年1月1日的毫秒数,但是对日期的格式没有明确要求。
ES5添加了Date.now()生成当前时间的毫秒数。兼容(ie9+,Firefor3+,Safari3+,chrome)
写一个函数getIntv
,获取从当前时间到指定日期的间隔时间
function getIntv(date){ var setToDate = Date.parse(date); var now = Date.now(); var daySecond = 86400, hourSecond = 3600, minSecond = 60; var intvTime; if(setToDate > now){ intvTime = Math.floor((setToDate - now)/1000); var days = Math.floor(intvTime/daySecond); var hours = Math.floor((intvTime-(days*daySecond))/hourSecond); var mins= Math.floor((intvTime-(daySecond*days)-(hours*hourSecond))/minSecond); var seconds = Math.floor(intvTime-(daySecond*days)-(hours*hourSecond)-(minSecond*mins)); return '距离'+date+'还有'+days+'天'+hours+'小时'+mins+'分'+seconds+'秒'; }else{ intvTime = Math.floor((now - setToDate)/1000); var days = Math.floor(intvTime/daySecond); var hours = Math.floor((intvTime-(days*daySecond))/hourSecond); var mins= Math.floor((intvTime-(daySecond*days)-(hours*hourSecond))/minSecond); var seconds = Math.floor(intvTime-(daySecond*days)-(hours*hourSecond)-(minSecond*mins)); return '相比'+date+'已经过去'+days+'天'+hours+'小时'+mins+'分'+seconds+'秒'; } }
把数字日期改成中文日期
var str = "2016-11-12"; function getChsDate(date){ var dict = ['零', '一','二','三','四','五','六','七','八','九','十','十一','十二','十三','十四','十五','十六','十七','十八','十九','二十','二十一','二十二','二十三','二十四','二十五','二十六','二十七','二十八','二十九','三十','三十一']; var dateObj = new Date(date); var oYear = dateObj.getFullYear().toString(); var oMonth = dateObj.getMonth()+1; var oDay = dateObj.getDate(); return dict[oYear[0]] + dict[oYear[1]] + dict[oYear[2]] + dict[oYear[3]] + '年' + dict[oMonth] +'月' + dict[oDay] + '日'; }
//getFullYear,getMonth等只能用在时间对象上,不可以用在毫秒数上
//getMonth()获取的月份要+1,因为这里的时间对象中11就是12月,需要手动+1;
//getDate()获取天数
获取N天前的日期:
function getLastNDays(days){ var intvDate = Date.now()-days*(24*60*60*1000); var date = new Date(intvDate); var year = date.getFullYear(); var mon = date.getMonth()+1; var day = date.getDate(); return year+'-'+mon+'-'+day; } var lastWeek = getLastNDays(7); var lastTenDay = getLastNDays(10);