前言

需要有一个日期处理方法,该方法具备下面的特性:
输入"2021-05-29 00:00:59 GMT+0800",输出"2021-05-29 00:00:00 GMT+0800"
输入"2021-05-29 01:00:59 GMT+0800",输出"2021-05-29 00:00:00 GMT+0800"

truncDay

<!DOCTYPE html>
<html lang="zh" >
<head><meta charset="utf-8">
</head>
<body class="white-bg">
<script type="text/javascript">
if (!Date.prototype.truncDay) {Date.prototype.truncDay = function() {var newTime =new Date(this.getFullYear(), this.getMonth(), this.getDate());return newTime;};
}console.log(new Date("2021-05-29 00:00:59 GMT+0800").truncDay());
console.log(new Date("2021-05-29 01:00:59 GMT+0800").truncDay());
console.log(new Date("2021-05-29 02:00:59 GMT+0800").truncDay());
console.log(new Date("2021-05-29 03:00:59 GMT+0800").truncDay());
console.log(new Date("2021-05-29 04:00:59 GMT+0800").truncDay());
console.log(new Date("2021-05-29 05:00:59 GMT+0800").truncDay());
console.log(new Date("2021-05-29 06:00:59 GMT+0800").truncDay());
console.log(new Date("2021-05-29 07:00:59 GMT+0800").truncDay());
console.log(new Date("2021-05-29 08:00:59 GMT+0800").truncDay());
console.log(new Date("2021-05-29 09:00:59 GMT+0800").truncDay());
console.log(new Date("2021-05-29 10:00:59 GMT+0800").truncDay());
console.log(new Date("2021-05-29 11:00:59 GMT+0800").truncDay());
console.log(new Date("2021-05-29 12:00:59 GMT+0800").truncDay());
console.log(new Date("2021-05-29 13:00:59 GMT+0800").truncDay());
console.log(new Date("2021-05-29 14:00:59 GMT+0800").truncDay());
console.log(new Date("2021-05-29 15:00:59 GMT+0800").truncDay());
console.log(new Date("2021-05-29 16:00:59 GMT+0800").truncDay());
console.log(new Date("2021-05-29 17:00:59 GMT+0800").truncDay());
console.log(new Date("2021-05-29 18:00:59 GMT+0800").truncDay());
console.log(new Date("2021-05-29 19:00:59 GMT+0800").truncDay());
console.log(new Date("2021-05-29 20:00:59 GMT+0800").truncDay());
console.log(new Date("2021-05-29 21:00:59 GMT+0800").truncDay());
console.log(new Date("2021-05-29 22:00:59 GMT+0800").truncDay());
console.log(new Date("2021-05-29 23:23:59 GMT+0800").truncDay());
</script>
</body>
</html>

运行效果

truncDay 另一种实现

<!DOCTYPE html>
<html lang="zh" >
<head><meta charset="utf-8">
</head>
<body class="white-bg">
<script type="text/javascript">
if (!Date.prototype.truncDay) {Date.prototype.truncDay = function() {var ms = this.getTime();ms -= this.getTimezoneOffset() * 60 * 1000; //getTime得到的值,已被偏移。此处需要修正ms = Math.trunc(ms/(24 * 60 * 60 * 1000)) * (24 * 60 * 60 * 1000);ms += this.getTimezoneOffset() * 60 * 1000; //计算出偏移后的数值var newTime =new Date(ms);return newTime;};
}console.log(new Date("2021-05-29 00:00:59 GMT+0800").truncDay());
console.log(new Date("2021-05-29 01:00:59 GMT+0800").truncDay());
console.log(new Date("2021-05-29 02:00:59 GMT+0800").truncDay());
console.log(new Date("2021-05-29 03:00:59 GMT+0800").truncDay());
console.log(new Date("2021-05-29 04:00:59 GMT+0800").truncDay());
console.log(new Date("2021-05-29 05:00:59 GMT+0800").truncDay());
console.log(new Date("2021-05-29 06:00:59 GMT+0800").truncDay());
console.log(new Date("2021-05-29 07:00:59 GMT+0800").truncDay());
console.log(new Date("2021-05-29 08:00:59 GMT+0800").truncDay());
console.log(new Date("2021-05-29 09:00:59 GMT+0800").truncDay());
console.log(new Date("2021-05-29 10:00:59 GMT+0800").truncDay());
console.log(new Date("2021-05-29 11:00:59 GMT+0800").truncDay());
console.log(new Date("2021-05-29 12:00:59 GMT+0800").truncDay());
console.log(new Date("2021-05-29 13:00:59 GMT+0800").truncDay());
console.log(new Date("2021-05-29 14:00:59 GMT+0800").truncDay());
console.log(new Date("2021-05-29 15:00:59 GMT+0800").truncDay());
console.log(new Date("2021-05-29 16:00:59 GMT+0800").truncDay());
console.log(new Date("2021-05-29 17:00:59 GMT+0800").truncDay());
console.log(new Date("2021-05-29 18:00:59 GMT+0800").truncDay());
console.log(new Date("2021-05-29 19:00:59 GMT+0800").truncDay());
console.log(new Date("2021-05-29 20:00:59 GMT+0800").truncDay());
console.log(new Date("2021-05-29 21:00:59 GMT+0800").truncDay());
console.log(new Date("2021-05-29 22:00:59 GMT+0800").truncDay());
console.log(new Date("2021-05-29 23:23:59 GMT+0800").truncDay());
</script>
</body>
</html>
  • 通过 getTimezoneOffset() 对时间戳修正。

参考

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date

[javascript] Date 时间精确到天相关推荐

  1. JavaScript Date() setDate() 时间的格式化 加一天 减一天

    JavaScript Date() 时间的格式化与日期的增加减少 格式化时间显示格式 let newDateFun = function(date) {let date = new Date(date ...

  2. JavaScript Date对象时间处理

    目录 释义 语法 获取和设置方法 获取时间 设置时间 释义 Date 对象用来处理时间和日期: 创建一个 JavaScript Date 实例,该实例呈现时间中的某个时刻.Date 对象则基于 Uni ...

  3. html date 设置时间,JavaScript Date(日期)

    JavaScript Date(日期) 对象 日期对象用于处理日期和时间. 在线实例 getFullYear() 使用 getFullYear() 获取年份. getTime() getTime() ...

  4. javascript Date对象 之 获取时间

    javascript Date对象 --> 获取时间: 测试代码: <!DOCTYPE html> <html lang="en"> <head ...

  5. JavaScript Date对象详解 以及 时间戳和时间的相互转换

    目录 一.Date对象详解 1.Date对象 2.创建Date对象 3.Date对象属性 4.Date对象方法 5.Date对象的应用(节流函数时间戳写法) 二.时间戳和时间的相互转换 1.时间转换为 ...

  6. JavaScript 关于 Date() 时间函数的运用以及方法封装

    前言 此,主要是记录自己平时会常用到的一些Date操作方法封装,以及Date中比较好用的一些方法运用,希望能帮助到你. 学习路径:MDN-Date(MDN上面有详细的介绍属性语法,感兴趣可以点过去看看 ...

  7. javascript日期时间操作总结

    js获得当前系统日期时间 < !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http: ...

  8. javascript 显示时间

    javascript 显示时间 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "ht ...

  9. JavaScript Date 对象

    JavaScript Date 对象 JavaScript Date 对象 http://www.w3school.com.cn/jsref/jsref_obj_date.asp 日期处理 Date ...

最新文章

  1. GBin1分享:jQuery新手技巧之“避免过多使用$('.someclass')”
  2. 百兆以太网传输距离_罗森伯格陪你做车载——汽车以太网(三)
  3. java中lambda表达式的应用
  4. python 遍历内嵌tuple,python特性语法之遍历、公共方法、引用
  5. php - 冒泡排序
  6. 内网渗透-域内信息收集
  7. python绘制饼图程序_python使用Matplotlib绘制饼图
  8. orm和mysql_orm与mysql
  9. 作者:姚阳(1979-),女,广州市社会科学院经济学副研究员。
  10. css3缩放 transform: scale() 使用缩放之后顶点对齐问题
  11. android命名规范阿里,阿里android开发手册 PDF 下载
  12. 消息称字节跳动正在开发一款类Clubhouse应用
  13. python和台达plc通讯_台达PLC通信协议ModbusASCIIDVP
  14. 06-01 搭建持续集成平台 Jenkins
  15. 电商网站开发设计方案、电商网站开发重要性
  16. u盘复制到计算机的文档打不开怎么办,U盘文件复制到别的电脑打不开怎么办
  17. python生词本的生词_词汇小助手V1.1——引入自动翻译和在线词典功能
  18. 左/右移运算符,循环左/右移运算
  19. 彻底理解js的作用域链
  20. mysql数据库查询语句_mysql数据库查询语句

热门文章

  1. 解决DeferredResult 使用 @ResponseBody 注解返回中文乱码
  2. 《PHP和MySQL Web开发从新手到高手(第5版)》一1.7 万事俱备,摩拳擦掌
  3. Altium_Designer-PCB的覆铜步骤
  4. 线性时间排序--桶排
  5. 我为什么喜欢用C#来做并发编程
  6. SQLIO 模拟随机或者顺序的方式来测试磁盘IO的性能
  7. os.walk 遍历目录下目录和文件
  8. oracle 存储过程循环体中的return和exit区别:
  9. MyEclipse使用总结——设置MyEclipse使用的Tomcat服务器
  10. linux启动顺序怎么修改,怎样修改启动顺序?