在JavaScript中获取时间的方法有多种,一般可以引用moment.js这个库来获取时间,还可以通过自己编写代码来获取时间。
在moment.js中获取时间就涉及到了moment.js的下载和引用,这个详情可以去官网查看(http://momentjs.cn/timezone/),我们说一下配置好moment.js后,怎么获取时间。
对于当前的时间的获取:
moment().format('L'); // 2018-03-01 moment().format('l'); // 2018-03-01 moment().format('LL'); // 2018年3月1日 moment().format('ll'); // 2018年3月1日 moment().format('LLL'); // 2018年3月1日晚上6点02分 moment().format('lll'); // 2018年3月1日晚上6点02分 moment().format('LLLL'); // 2018年3月1日星期四晚上6点02分 moment().format('llll'); // 2018年3月1日星期四晚上6点02分
还可以日期格式化
moment().format('MMMM Do YYYY, h:mm:ss a'); // 三月 1日 2018, 6:08:27 晚上 moment().format('dddd'); // 星期四 moment().format("MMM Do YY"); // 3月 1日 18 moment().format('YYYY [escaped] YYYY'); // 2018 escaped 2018 moment().format(); // 2018-03-01T18:08:27+08:00
上述的功能需要在引用moment.js后实现的。
还有一种自己写代码来完成
function time(){ var myDate = new Date(); var year=myDate.getFullYear(); var month=myDate.getMonth(); var newMonth = (month+1)>9?(month+1):"0"+(month+1); // 03月 var day=myDate.getDate(); var newday = day>9?day:"0"+day; // 09日 var hours=myDate.getHours(); var newhours = hours>9?hours:"0"+hours; // 06时 var minutes=myDate.getMinutes(); var newminutes = minutes>9?minutes:"0"+minutes; // 06分 var seconds=myDate.getSeconds(); var newseconds= seconds>9?seconds:"0"+seconds; // 03秒 var now_time= year+"年"+ newMonth+"月"+newday+"日 "+ newhours+":"+newminutes+":"+newseconds; return now_time } var now_time=time(); console.log(now_time) //输出当前时间 例如 2018年03月01日 18:13:49
上面的代码可以根据我们需要的是时间的格式来进行改变
如果不需要再月份或者几号前面加0的话 代码段的 var newMonth = (month+1)>9?(month+1):"0"+(month+1);取消,相应的代码略微改动即可。
还有一点需要记住 月份的获取是0-11所以要在获取的月份+1才是当前的月份
还有一种就是获取相对时间
moment("20111031", "YYYYMMDD").fromNow(); // 6 年前 上行代码是获取20111031相对于当前的时间 因为20111031到20180331是6年6个月,今天是20180302多出的月份小于6个月舍去 所以是6年前 moment("20120620", "YYYYMMDD").fromNow(); // 6 年前 上行代码是获取20120620相对于当前的时间 因为20120620到现在20180302是5年7个月多出的7个月大于半年所以进位1年 所以是6年前 moment().startOf('day').fromNow(); // 11 小时前 上行代码是获取 上一天相对于现在过去了多少小时 比如现在是10.34 分钟大于30分钟,进位1小时,所以相对于现在上一天是11小时前 moment().startOf('day').fromNow(); // 10 小时前 上行代码是获取 上一天相对于现在过去了多少小时 比如现在是10.29 分钟小于30分钟 ,舍去29分钟,所以相对于现在上一天是10小时前 moment().endOf('day').fromNow(); // 13 小时内 上行代码是获取 下一天相对于现在差多少小时,也可以说是还有多久到下一天。 比如现在是10.34 分钟大于30分钟 ,进位1小时,所以进位到11点 所以还有13个小时到下一天 moment().endOf('day').fromNow(); // 14 小时内 上行代码是获取 下一天相对于现在差多少小时,也可以说是还有多久到下一天。 比如现在是10.29 分钟小于30分钟 ,舍去29分,所以现在时间为10点 所以还有14个小时到下一天 moment().startOf('hour').fromNow(); // 34 分钟前 上行代码是获取 上个整点到现在过了多久 ,也是多少分钟前是整点 比如现在是10.34 所以上个整点10点是 34分钟前
以上为个人理解,如有错请告知。