當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
[javascript] Date 时间精确到天
生活随笔
收集整理的這篇文章主要介紹了
[javascript] Date 时间精确到天
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
前言
需要有一個日期處理方法,該方法具備下面的特性:
輸入"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 时间精确到天的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 向js中添加静态方法与属性方法
- 下一篇: 【SpringBoot Testing】