JavaScript中获取时间的几种方法

在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分钟前  

 以上为个人理解,如有错请告知。

猜你喜欢

转载自1397548794.iteye.com/blog/2411939