我们可以通过日期对象来获取系统的当前时间
var date = new Date();
但是这样,得出的时间日期,在人们的观赏度上来说是非常差的,所以我们可以通过一些方法,封装成一个函数,最后将日期的各个属性作为一个对象返回出来,让用户自己想得到一个怎么样的日期,就可以通过设置字符链接来得到样式。
function createDate(){ //获取当前系统日期时间 var d = new Date(); //获取日期的每一部分 var year = d.getFullYear(); var month = d.getMonth(); var date = d.getDate(); var day = d.getDay(); var hours = d.getHours(); var minutes = d.getMinutes(); var seconds = d.getSeconds(); var mills = d.getMilliseconds(); var timesTamp = d.getTime(); //处理星期的0-6的问题 switch(day){ case 0: day = "日";break; case 1: day = "一";break; case 2: day = "二";break; case 3: day = "三";break; case 4: day = "四";break; case 5: day = "五";break; case 6: day = "六";break; } return { year:year, month:createZero(month), date:createZero(date), day:day, hours:createZero(hours), minutes:createZero(minutes), seconds:createZero(seconds), mills:mills, timesTamp:timesTamp }; } console.log(createDate()); function cDate(){ var YYYY = createDate().year; var MM = createDate().month; var DD = createDate().date; var HH = createDate().hours-12; var mm = createDate().minutes; var SS = createDate().seconds; return YYYY+"-"+MM+"-"+DD+" "+HH+"-"+mm+"-"+SS; }
接下来,我们来进行一个使用上面函数的小练习。
编写函数,要求传入两个日期时间,返回两个日期时间之间,相差 `多少天多少小时多少分钟多少秒`
function dateDiff(d1,d2){ //得到第一个日期对象 var date1 = new Date(d1); //根据用户是否传入第二个日期对象进行选择 var date2 = d2 ? new Date(d2) : new Date(); //利用时间戳来进行比较 // 获取毫秒数 var t = Math.abs(date1.getTime()-date2.getTime()); //求得多少毫秒 var mills = t % 1000; //获取秒数 t = parseInt(t / 1000); //获取天数 var day = parseInt(t / 60 / 60 / 24); //获取得出天后的秒数 t -= day * 24 * 60 * 60; //获取小时数 var hour = parseInt(t / 60 / 60); //获取得出天和小时后的秒数 t -= hour * 60 * 60; //获取分钟数 var minute = parseInt(t / 60); //获取取出天、小时、分钟后的秒数,也就是最后的秒数 t -= minute * 60; return { day:day, hour:hour, minute:minute, seconds:t, mills:mills }; }