目录

一、最近做了什么?

二、遇到的问题和解决办法

1.axios获取到数据库里的失效时间类型

2.前端获取到的Date()类型当前时间类型

3.前后端时间类型统一转换成yyyy-MM-dd HH:mm:ss格式

4.yyyy-MM-dd HH:mm:ss格式的时间比较

一、最近做了什么?

主要记录一下四月底到五月初做了什么,以及遇到的一些问题。
      这段时间主要还是用户端的前端书写和后端逻辑的书写。我主要负责用户端申请信息的展示以及申请详情的展示。

前端涉及从数据库提取timestamp类型的申请失效时间和前端获取的Date类型的当前时间的比较,之后进行下一步的逻辑判断和操作。

所以下面讲一下时间比较的方法。

二、遇到的问题和解决办法

1.axios获取到数据库里的失效时间类型

获取到的timestamp类型格式:

即:yyyy-MM-dd'T'HH:mm:ss.SSSXXX

2.前端获取到的Date()类型当前时间类型

3.前后端时间类型统一转换成yyyy-MM-dd HH:mm:ss格式

为了方便毫秒级比较,所以两者都转换成yyyy-MM-dd HH:mm:ss格式

后端转换方法,即yyyy-MM-dd'T'HH:mm:ss.SSSXXX到yyyy-MM-dd HH:mm:ss方法代码如下:

renderTime(date){var dateee = new Date(date).toJSON();return new Date(+new Date(dateee) + 8 * 3600 * 1000).toISOString().replace(/T/g, ' ').replace(/\.[\d]{3}Z/, '')},

前端转换方法,即Date()到yyyy-MM-dd HH:mm:ss方法代码如下:

dateFormat(date){console.log("当前时间转换前:"+ date);let y = date.getFullYear()let m = date.getMonth() + 1m = m < 10 ? ('0' + m) : mlet d = date.getDate()d = d < 10 ? ('0' + d) : dlet h =date.getHours()h = h < 10 ? ('0' + h) : hlet M =date.getMinutes()M = M < 10 ? ('0' + M) : Mlet s =date.getSeconds()s = s < 10 ? ('0' + s) : slet dateTime= y + '-' + m + '-' + d + ' ' + h + ':' + M + ':' + s;console.log("当前时间转换后:"+ dateTime);return dateTime;},

4.yyyy-MM-dd HH:mm:ss格式的时间比较

这里利用了Date.parse()方法。

Date.parse()方法用于分析一个包含日期的字符串,并返回该日期与 1970 年 1 月 1 日午夜之间相差的毫秒数。

字符串是有规则要求的。如下(借鉴了一些资料和大佬的博客):

  • 短日期可使用/日期分隔符,但是必须符合月/日/年的格式,例如7/20/96或6/15/2008。
  • 以July 10 1995形式表示的长日期中的年、月、日可以按任何顺序排列,而且年份可以用2位数或4位数的形式表示。如果使用2位数的形式来表示年份,则该年份必须大于或等于 70。
  • 括号中的任何文本都被视为注释。这些括号可以嵌套。
  • 逗号和空格被视为分隔符。允许使用多个分隔符。
  • 月和日的名称必须具有两个或两个以上的字符。如果两个字符所组成的名称不唯一,则该名称将解析为最晚的一个匹配日期。例如,Ju解析为七月(July),而不是六月(June)。Chrome不支持"Ju"这种写法。
  • 如果提供一个日期,该日期中所说明的星期数与根据此日期中其他部分所确定的星期数不相符,则此日期中的星期数将被忽略。例如,尽管 1996 年 11 月 9 日实际上是星期五,但Tuesday November 9 1996还是可以被接受并进行分析。但是结果的 Date 对象中包含的是Friday November 9 1996。
  • JavaScript处理所有的标准时区,以及协调通用时间 (UTC) 和格林威治标准时间 (GMT),例如:Thu, 07 Aug 2014 11:00:14 GMT。IE6 ~ IE8对UTC格式的支持程度非常低,IE9的支持也不全面。
  • 用冒号分隔小时、分钟和秒,但所有这些内容并非都需要指定。10:、10:11和10:11:12都是有效的。
  • 若使用的时钟是 24 小时计时的,那么将中午 12 点之后的时间指定为PM是错误的。例如,23:15 PM就是错误的。
  • 包含无效日期的字符串是错误的。例如,一个包含两个年份或两个月份的字符串是错误的。

根据规则,将yyyy-MM-dd HH:mm:ss转换成MM-dd-yyyy HH:mm:ss格式代码如下:

compareDate(date1,date2){var startDate = date1.substring(0,10).split('-');//当前时间var endDate = date2.substring(0,10).split('-');//失效时间var startNum = startDate[1]+'-'+startDate[2]+'-'+startDate[0]+' '+date1.substring(10,19);  var endNum = endDate[1]+'-'+endDate[2]+'-'+endDate[0]+' '+date2.substring(10,19);var disparityTime =(Date.parse(endNum)-Date.parse(startNum))/3600/1000; //失效时间-当前时间if(Number(disparityTime)<0){console.log("失效时间小于当前时间");return true;//已失效}else{console.log("失效时间大于当前时间");return false;//未失效}},

项目实训记录(四)——前端date类型和数据库timestamp类型比较相关推荐

  1. 项目实训记录(1-2周)

    前言 我是我们项目实训小队的队长,负责了开题答辩.下面是项目实训1-2周的工作记录. 一.确定选题 我们小组四个同学就选题进行了很长时间的讨论,最后确定选择做一个基于人工智能技术的大学生辅助学习系统. ...

  2. 2021年山东大学软件学院项目实训记录(第一周)

    这次项目实训中,我们小组选择的题目是在线考试系统,经过讨论分工,我负责考试管理部分中的前端开发部分. 首先进行环境配置. 前端开发最为便利的开发工具为VScode,我们选择的开发框架是Vue. VSc ...

  3. 【SDU青山】项目实训记录(1)

    目录 前言 环境搭建 切面编程 拦截器 WAR包部署 RestFul 前言 在本次项目实训中我负责后端的开发,后端主要使用springboot和mybatis,数据库使用mysql. 由于我之前并未对 ...

  4. Android基础知识【项目实训-实现二级导航“今日活动”及读取数据库】【5】

    [该项目实训是Android基础知识的一个综合练习,特别提示:项目中会用到一些图片素材,都是随意整理的,稍后会上传一个资源,包含该事项项目的基本功能,也含有图片素材] [项目题目]:校园订餐App设计 ...

  5. 山东大学项目实训(四)—— 微信小程序扫描web端二维码实现web端登录

    效果 点击登录后,显示二维码→打开"探古"(本项目)微信小程序,扫描二维码确认登录→web端登录成功 主要流程 因为本人主要负责web前端的开发,所以本文仅介绍web前端的实现方法 ...

  6. 山东大学软件学院2022项目实训——(四)SQL注入的学习

    目录 (一)什么是SQL注入 (二)SQL注入的类型 (三)SQL注入的危害 (四)SQL注入的防护 1.分级管理 2.参数传值 3.基础过滤与二次过滤 4.使用安全参数 5.漏洞扫描 6.多层验证 ...

  7. 项目实训-关键词提取-论文研读-load centrality的合理性探讨

    项目实训记录系列博客 一马当先,争做国家栋梁. 博客说明 本博客初衷是用于学校项目实训知识梳理.工作内容.收获感悟的记录. 若能在您的学习之路上有所帮助,不胜荣幸.但若需转载,也请注明出处. 博客包含 ...

  8. 项目实训-关键词提取-任务理解工作分配

    项目实训记录系列博客 一马当先,争做国家栋梁. 博客说明 本博客初衷是用于学校项目实训知识梳理.工作内容.收获感悟的记录. 若能在您的学习之路上有所帮助,不胜荣幸.但若需转载,也请注明出处. 博客包含 ...

  9. 项目实训-收尾工作-组织协调

    项目实训记录系列博客 一马当先,争做国家栋梁. 博客说明 本博客初衷是用于学校项目实训知识梳理.工作内容.收获感悟的记录. 若能在您的学习之路上有所帮助,不胜荣幸.但若需转载,也请注明出处. 博客包含 ...

最新文章

  1. 解读计算机视觉论文投稿到接收,不可不知的关键环节
  2. Node的Web应用框架Express的简介与搭建HelloWorld
  3. 民用建筑工程给水排水设计深度图样_「安装工程识图」建筑给水排水施工图的识读方法...
  4. kubernetes-Service
  5. monk js_对象检测-使用Monk AI进行文档布局分析
  6. TabActivity中子Activity相互跳转,及某个Tab需弹出窗的解决方案
  7. mysql dba命令_mysql DBA:mysqladmin常用命令总结
  8. HibernateProxy. Forgot to register a type adapter?
  9. 93. 复原IP地址
  10. WIN10 WIN11的vs2019与fortran编译环境的安装
  11. 小程序上传图片加水印
  12. 【JY】浅析消能附加阻尼比
  13. Spring Boot Admin
  14. 北京外国语大学计算机考研,北京外国语大学考研难吗?一般要什么水平才可以进入?...
  15. 2021高考成绩查询新浪,【转】2021高三一模分数线发布!各分数段可报大学出炉!...
  16. 【Linux】FirefoxBrowser 火狐浏览器安装 FlashPlayer 插件
  17. 南开计算机考研真题,(NEW)南开大学《812计算机综合基础》历年考研真题汇编(83页)-原创力文档...
  18. ubuntu微信中输入乱码解决
  19. 服务器系统安装优盘启动工具,u盘启动大师在Win10上安装和卸载远程服务器管理工具的方法...
  20. Ubuntu18.04 Cmake安装,报错openssl

热门文章

  1. 直流电机双闭环调速系统,以及直流电机双闭环系统建模,采用转速外环电流内环的控制结构
  2. windows溢出保护原理与绕过方法概览(转自riusksk's blog(泉哥))
  3. 基于matlab电气系统模块库的电机调速系统仿真,基于MATLAB的直流电动机斩波调速系统仿真研究...
  4. 麦子学院深度学习基础 —— 机器学习 —— 最近邻规则分类 KNN 算法
  5. AR+餐饮创意应用亮相微信公开课
  6. 思享工具箱,各种工具汇总
  7. INA169NA/3K 德州TI 2.7V 至 60V、440kHz 可变增益电流感应放大器
  8. IPB60R950C6-ASEMI代理英飞凌高压MOS管IPB60R950C6
  9. 阿里云~简单发送短信
  10. (附源码)计算机毕业设计ssm高校学生综合素质测评系统