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

 

 

 

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

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值