js计算时间差

一时失言乱红尘 2022-05-23 11:20 373阅读 0赞

需求:在某个时间点后的N天后做某件事情
分析:1.计算某个时间点与今天当前时间的时间差(这里要考虑到计算时间差,如果时间格式化成字符串后计算,存在日切,年切的问题)
2.N天是需求中给出的一个时间,这里假设N=7天;某个时间点也是需求中给出的时间,是这样的格式:2018-01-2 15:59:07
3.根据上述条件,需要把时间转成毫秒值后,再计算时间差。过程如下:

  1. function getDiff(oldTime){
  2. let status = false;
  3. let oneWeek = 604800000;//7天的毫秒值
  4. let fmt = oldTime.replace(new RegExp("-", "gm"), "/");
  5. console.log("把时间格式转变为可以转换毫秒值的日期格式 fmt == " + fmt);
  6. //获取指定时间的毫秒值,需要把时间格式转成此格式 2018/01/2 15:59:07
  7. let oldTime_fmt = (new Date(fmt)).getTime();
  8. console.log("把时间格式转变为毫秒值 oldTime_fmt == " + oldTime_fmt);
  9. //获取当前时间的毫秒值
  10. let nowTime = Date.now();
  11. console.log("当前的时间毫秒值 nowTime == " + nowTime);
  12. //计算时间差
  13. let diff = nowTime - oldTime_fmt;
  14. console.log("当前日期毫秒值与指定日期毫秒值的差 diff==" + diff);
  15. if(diff >= oneWeek){
  16. console.log("当前时间超过了7天范围")
  17. status = true;
  18. }else{
  19. console.log("当前时间在7天范围之内")
  20. status = false;
  21. }
  22. return status;
  23. }
  24. //可以在此函数中,验证是否存在日期年切问题
  25. function test1(){
  26. var oneWeek = 604800000;//6 day
  27. var time = "2017-12-31 15:59:07";
  28. var fmt = time.replace(new RegExp("-","gm"),"/");
  29. console.log("fmt == "+fmt);
  30. var oldTime = (new Date(fmt)).getTime();
  31. var time ="2018-01-2 15:59:07";
  32. // var time ="2018-01-10 15:59:07";
  33. var fmt2 = time.replace(new RegExp("-","gm"),"/");
  34. console.log("fmt2 == "+fmt2);
  35. var nowTime = (new Date(fmt2)).getTime();
  36. console.log("nowTime == "+ nowTime);
  37. var diff = nowTime-oldTime;
  38. console.log("diff=="+diff);
  39. if (diff >= oneWeek) {
  40. console.log("时间超过了7天")
  41. } else{
  42. console.log("时间在7天之内")
  43. }
  44. }

发表评论

表情:
评论列表 (有 0 条评论,373人围观)

还没有评论,来说两句吧...

相关阅读

    相关 js计算时间差

    需求:在某个时间点后的N天后做某件事情 分析:1.计算某个时间点与今天当前时间的时间差(这里要考虑到计算时间差,如果时间格式化成字符串后计算,存在日切,年切的问题) 2