首页 > 其他分享 >通过Js将时间转换为刚刚、几分钟前、几小时前

通过Js将时间转换为刚刚、几分钟前、几小时前

时间:2024-11-18 12:19:38浏览次数:3  
标签:dateTimeStamp diffValue 几分钟 Js let && 几小时 monthC day

前言

常见的评论或者朋友圈都能看到的发送时间是刚刚,几分钟前,几小时前,如何把时间改成这样呢?

代码

首先需要传入的是评论时间,格式如:2020-01-12 20:10:15

      /**
       * dateTimeStamp是评论的发送时间   2020-01-12 20:10:15 这样的形式
       * @param dateTimeStamp
       * @returns {string}
       */
      timeAgo(dateTimeStamp) {
        let result = "";
        let minute = 1000 * 60;      //把分,时,天,周,半个月,一个月用毫秒表示
        let hour = minute * 60;
        let day = hour * 24;
        let week = day * 7;
        let halfamonth = day * 15;
        let month = day * 30;
        let now = new Date().getTime();   //获取当前时间毫秒

        dateTimeStamp = dateTimeStamp.substring(0, 18);
        //必须把日期'-'转为'/'
        dateTimeStamp = dateTimeStamp.replace(/-/g, '/');
        let timestamp = new Date(dateTimeStamp).getTime();

        let diffValue = now - timestamp;//时间差

        if (diffValue < 0) {
          return result;
        }
        let minC = diffValue / minute;  //计算时间差的分,时,天,周,月
        let hourC = diffValue / hour;
        let dayC = diffValue / day;
        let weekC = diffValue / week;
        let monthC = diffValue / month;
        if (monthC >= 1 && monthC <= 3) {
          result = " " + parseInt(monthC) + "月前"
        } else if (weekC >= 1 && weekC <= 3) {
          result = " " + parseInt(weekC) + "周前"
        } else if (dayC >= 1 && dayC <= 6) {
          result = " " + parseInt(dayC) + "天前"
        } else if (hourC >= 1 && hourC <= 23) {
          result = " " + parseInt(hourC) + "小时前"
        } else if (minC >= 1 && minC <= 59) {
          result = " " + parseInt(minC) + "分钟前"
        } else if (diffValue >= 0 && diffValue <= minute) {
          result = "刚刚"
        } else {
          let datetime = new Date();
          datetime.setTime(dateTimeStamp);
          let Nyear = datetime.getFullYear();
          let Nmonth = datetime.getMonth() + 1 < 10 ? "0" + (datetime.getMonth() + 1) : datetime.getMonth() + 1;
          let Ndate = datetime.getDate() < 10 ? "0" + datetime.getDate() : datetime.getDate();
          let Nhour = datetime.getHours() < 10 ? "0" + datetime.getHours() : datetime.getHours();
          let Nminute = datetime.getMinutes() < 10 ? "0" + datetime.getMinutes() : datetime.getMinutes();
          let Nsecond = datetime.getSeconds() < 10 ? "0" + datetime.getSeconds() : datetime.getSeconds();
          result = Nyear + "-" + Nmonth + "-" + Ndate
        }
        return result;
      },

标签:dateTimeStamp,diffValue,几分钟,Js,let,&&,几小时,monthC,day
From: https://blog.csdn.net/qq_44182424/article/details/143852814

相关文章

  • js设置浏览器cookie
             https://blog.csdn.net/x550392236/article/details/77651579......
  • 「Java EE开发指南」如何使用Visual JSF编辑器设计JSP?(一)
    VisualJSFDesigner的目标是使创建JSF应用程序的特定于组件的工作更容易可视化,在本教程中,您将使用可视化设计器设计JSF登录页面,将学习如何:创建一个JSF项目创建一个新的JSF页面设计JSF页面该功能在MyEclipse中可用。MyEclipsev2024.1离线版下载MyEclipse技术交流群:74233......
  • node.js毕设小卡公司河涌治理管理系统(程序+论文)
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容一、选题背景关于河涌治理管理系统的研究,现有研究主要集中在大型河流的水质监测与治理方面,专门针对小型河涌治理的研究较少。在国内外,河涌治理的研究成果主要体现在......
  • node.js毕设校园顺风车微信小程序(程序+论文)
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容一、选题背景关于校园交通出行问题的研究,现有研究主要以校园公共交通优化为主,专门针对校园顺风车这种特定出行方式的研究较少。在校园内,学生的出行需求多样化且具有......
  • 【开源免费】基于SpringBoot+Vue.JS房屋租赁系统(JAVA毕业设计)
    本文项目编号T040,文末自助获取源码\color{red}{T040,文末自助获取源码}......
  • 基于Java+SSM+JSP+MYSQL实现的宠物领养收养管理系统功能设计与实现六
    一、前言介绍:免费学习:猿来入此1.1项目摘要随着人们生活水平的提高,宠物已经成为越来越多家庭的重要成员。然而,宠物的数量增长也带来了一系列问题,如流浪宠物数量的增加、宠物健康管理的缺失以及宠物领养收养信息的不透明等。这些问题不仅影响了宠物的生存状况,也给社会带来了一定......
  • 基于Java+SSM+JSP+MYSQL实现的宠物领养收养管理系统功能设计与实现五
    一、前言介绍:免费学习:猿来入此1.1项目摘要随着人们生活水平的提高,宠物已经成为越来越多家庭的重要成员。然而,宠物的数量增长也带来了一系列问题,如流浪宠物数量的增加、宠物健康管理的缺失以及宠物领养收养信息的不透明等。这些问题不仅影响了宠物的生存状况,也给社会带来了一定......
  • js常用事件监听
    一、鼠标事件监听指在程序中捕获和响应鼠标动作的事件。常见的鼠标事件包括鼠标点击、移动、滚轮滚动等。1、mousedown:按下鼠标键时触发<head><style>.box{width:60px;height:30px;background-color:aliceblue;......
  • ThinkPHP中使用ajax接收json数据的方法
    在ThinkPHP框架中,使用AJAX接收JSON数据通常涉及前端和后端的交互。前端通过AJAX发送JSON数据到后端,后端控制器接收并处理这些数据,然后可能返回一些响应数据。以下是使用ThinkPHP接收AJAX发送的JSON数据的基本步骤:前端(JavaScript/AJAX)准备JSON数据:你需要将要发送的数据转换......
  • package.json中“type“: “module“是什么含义,es6和commonjs的区别以及require和impo
    "type":"module"是Node.js中package.json文件的一个字段,用于指示该项目的模块系统类型。它决定了项目中的.js文件应被视为ECMAScript模块(ESM)还是CommonJS模块(CJS)。含义和作用:"type":"module":项目中的.js文件将默认被视为ECMAScript模块(ESM/ES6)。......