常用的時間函數整理

来源:https://www.cnblogs.com/daniao11417/archive/2019/07/01/11114586.html
-Advertisement-
Play Games

這次的項目中,有很多用到了時間函數,報錯直接獲取本月的開始日期,結束如期。本周的開始時間,結束時間等。這裡簡單的記錄一下,方便下次引用。時間格式大家可以自行修改,例子中都是格式化成為了2019-07-01 15:55:00這樣的格式。 2.獲取這個月,或者上個月,或者下個月的開始日期和結束日期,大家 ...


  這次的項目中,有很多用到了時間函數,報錯直接獲取本月的開始日期,結束如期。本周的開始時間,結束時間等。這裡簡單的記錄一下,方便下次引用。時間格式大家可以自行修改,例子中都是格式化成為了2019-07-01 15:55:00這樣的格式。

  1. 最常用的一個,就是對JS原生new Date()的擴展,可以格式成為自己想要的格式。(以下的函數都是需要調用這個的,所以必須要引入這個)
 1 /**
 2 * 對Date的擴展,將 Date 轉化為指定格式的String
 3 * 月(M)、日(d)、小時(h)、分(m)、秒(s)、季度(q) 可以用 1-2 個占位符, 
 4 * 年(y)可以用 1-4 個占位符,毫秒(S)只能用 1 個占位符(是 1-3 位的數字) 
 5 * 例子: 
 6 * (new Date()).Format("yyyy-MM-dd hh:mm:ss.S") ==> 2006-07-02 08:09:04.423 
 7 * (new Date()).Format("yyyy-M-d h:m:s.S")      ==> 2006-7-2 8:9:4.18 
 8 */
 9 Date.prototype.Format = function (fmt) { //author: meizz 
10     var o = {
11         "M+": this.getMonth() + 1, //月份 
12         "d+": this.getDate(), //
13         "h+": this.getHours(), //小時 
14         "m+": this.getMinutes(), //
15         "s+": this.getSeconds(), //
16         "q+": Math.floor((this.getMonth() + 3) / 3), //季度 
17         "S": this.getMilliseconds() //毫秒 
18     };
19     if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
20     for (var k in o)
21     if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
22     return fmt;
23 }

  2.獲取這個月,或者上個月,或者下個月的開始日期和結束日期,大家簡單的修改,就能獲取到本月的開始時間和結束時間

 1 //獲取當月或者上個月數據的開始日期和結束日期 get_date(0):當月的開始和結束 get_date(-1):上個月的開始和結束日期
 2         function get_date(addMonth){ 
 3             var now_date = new Date();
 4             var month = now_date.getMonth();
 5             var year = now_date.getFullYear();
 6             var this_yue_begin = new Date(new Date(year,month,1)).Format("yyyy-MM-dd");
 7             var this_yue_end = "";
 8             var set_yue_begin = "";
 9             var set_yue_end = "";
10             if(addMonth){
11                 if((month+addMonth)>=12){
12                     set_yue_begin = new Date(new Date(year+1,(month+addMonth-12),1)).Format("yyyy-MM-dd");
13                 }else if((month+addMonth)<=0){
14                     set_yue_begin = new Date(new Date(year-1,11,1)).Format("yyyy-MM-dd");
15                 }else{
16                     set_yue_begin = new Date(new Date(year,month+addMonth,1)).Format("yyyy-MM-dd");
17                 }
18                 
19                 if(month+addMonth==11){
20                     set_yue_end = new Date(new Date(year+1,0,1).getTime()-1000).Format("yyyy-MM-dd");
21                 }else{
22                     set_yue_end = new Date(new Date(year,month+addMonth+1,1).getTime()-1000).Format("yyyy-MM-dd");
23                 }
24                 return set_yue_begin+" 00:00:00 - "+set_yue_end+" 23:59:59";
25             }else{
26                 if(month==11){
27                     this_yue_end = new Date(new Date(year+1,0,1).getTime()-1000).Format("yyyy-MM-dd");
28                 }else{
29                     this_yue_end = new Date(new Date(year,month+1,1).getTime()-1000).Format("yyyy-MM-dd");
30                 }
31                 return this_yue_begin +" 00:00:00 - "+this_yue_end+" 23:59:59";
32             }
33         }

  3.獲取本周的開始時間和結束時間

 1 //獲取本周的開始和結束時間,裡面也是傳0是獲取本周的時間,傳-1是獲取上一周的
 2         function getWeekStartAndEnd(AddWeekCount) { 
 3             //起止日期數組   
 4             var startStop = new Array(); 
 5             //一天的毫秒數   
 6             var millisecond = 1000 * 60 * 60 * 24; 
 7             //獲取當前時間   
 8             var currentDate = new Date();
 9             //相對於當前日期AddWeekCount個周的日期
10             currentDate = new Date(currentDate.getTime() + (millisecond * 7*AddWeekCount));
11             //返回date是一周中的某一天
12             var week = currentDate.getDay(); 
13             //返回date是一個月中的某一天   
14             var month = currentDate.getDate();
15             //減去的天數   
16             var minusDay = week != 0 ? week - 1 : 6; 
17             //獲得當前周的第一天   
18             var currentWeekFirstDay = new Date(currentDate.getTime() - (millisecond * minusDay)); 
19             //獲得當前周的最後一天
20             var currentWeekLastDay = new Date(currentWeekFirstDay.getTime() + (millisecond * 6));
21             //添加至數組   
22             startStop.push(getDateStr3(currentWeekFirstDay)); 
23             startStop.push(getDateStr3(currentWeekLastDay)); 
24         
25             return getDateStr3(currentWeekFirstDay)+" 00:00:00 - "+getDateStr3(currentWeekLastDay)+" 23:59:59"; 
26         }
27         function getDateStr3(date) {
28             var year = "";
29             var month = "";
30             var day = "";
31             var now = date;
32             year = ""+now.getFullYear();
33             if((now.getMonth()+1)<10){
34                 month = "0"+(now.getMonth()+1);
35             }else{
36                 month = ""+(now.getMonth()+1);
37             }
38             if((now.getDate())<10){
39                 day = "0"+(now.getDate());
40             }else{
41                 day = ""+(now.getDate());
42             }
43             return year+"-"+month+"-"+day;
44         }

  4.獲取最近三十天的時間

1 function get_30_date(){
2             var now_date = new Date().Format("yyyy-MM-dd hh:mm:ss");
3             var ago_30 = new Date(new Date().getTime()-30*24*60*60*1000).Format("yyyy-MM-dd hh:mm:ss");
4             return ago_30+" - "+now_date;
5         }

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • Math對象 Math對象 ECMAScript將一些常用的數學公式和信息封裝到了一個對象中——Math對象,為我們實現數學方面的計算功能提供了便捷,而且該對象還提供了輔助完成這些計算的屬性和方法 屬性 console.log("自然對數的底數,即常量e的值:" , Math.E); console ...
  • 鏈接:https://pan.baidu.com/s/1IKsAn_NotAX-lLuZLMVETQ 提取碼:v23t 今天,大多數現代測覽器都已經支持HTML5。學習體驗HTML5帶給Web開發的便捷、快速和強大功能,是每一位Web設計和開發人員的當務之急。本書通過人們熟悉的一個個游戲讓讀者輕鬆掌 ...
  • typora:不開源,測試期間免費,實時預覽模式將「寫作」和「預覽」合二為一 1.擴展編輯器寬度:(解決因圖片過大,即使編輯器全屏也模糊的問題、解決一行只能寫860px寬度的文字限制) ( 預設修改版式是居中,不是每行都居中,而且是把所有行看成一個整體居中, 想仿word中的web版式視圖按照截圖中 ...
  • DOM——基本組成與操作 DOM——基本組成與操作 DOM是針對HTML和XML文檔的一個API(應用程式編程介面)。DOM描繪了一個層次化的節點樹,允許開發人員添加、移除和修改頁面的某一部分。他給文檔提供了一種結構化的表達方式,可以改變文檔的內容和呈現方式,我們最關心的是,DOM把網頁和腳本以及其 ...
  • 簡單的說就是設置body的寬度,那麼如何動態的獲取瀏覽器減去側邊滾動條之後的寬度,原理就是通過創建一個帶有 滾動條的div(也就是overflow:scroll),利用offsetWidth-clientWidth得到滾動條的寬度,再利用 window.screen.availWidth減去滾動條的 ...
  • 鏈接:https://pan.baidu.com/s/1AMsf2Fpn_aVjJEMShixDRw提取碼:n12k ...
  • 恢復內容開始 可以使用title屬性(不要與title元素混淆)為網站上任何部分加上提示標簽。 可以為任何元素添加title,不過用的最多的是鏈接。 訪問者將滑鼠指向加了說明標簽的元素時 ,就會顯示title。 在網頁中為元素添加標簽 在要添加title的HTML元素中,輸入title="label ...
  • .BFC概念: 塊級格式化上下文,是一個獨立的渲染區域,讓處於 BFC 內部的元素與外部的元素相互隔離,使內外元素的定位不會相互影響。 我們先瞭解一個名詞:BFC(block formatting context),中文為“塊級格式化上下文”。 先記住一個原則: 如果一個元素具有BFC,那麼內部元素 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...