摘要:傳入的格式要求詳見日期格式打印結果作為構造函數作為構造函數可以通過指針實例化一個的實例對象,這個對象是一個日期對象。所有實例的屬性和方法即是繼承于構造函數原型上的屬性和方法。
前言
之前寫博客都是在github的搭建的個人博客上,最近開始遷移博客上的內容到segmentfalut。一方面是想重新整理下寫過的博客。另一方面也是想與大家多多交流,找到現階段自己的不足。第一篇文章是關于Date對象,這篇博客是關于Date對象的一些定義和一些常用方法的使用。Date對象 1. 作為Date對象 1-1 用法
作為普通對象可以直接作為函數調用,返回當前標準時間格式的字符串。
傳參和不傳參返回結果一致。
Date(); //打印結果 "Wed Dec 05 2018 19:43:52 GMT+0800 (中國標準時間)"1-2 Date對象方法
Date.now()
返回當前時間的時間戳,不接受傳參。
Date.now(); //打印結果 1544063816980
Date.parse()
傳入解析日期字符串返回時間戳,如果解析失敗,返回NaN。(傳入的格式要求詳見parse日期格式)
Date.parse("2018-09-09 01:02:03"); //打印結果 15364261230002. 作為Date()構造函數
1.作為構造函數可以通過new指針實例化一個Date的實例對象,這個對象是一個日期對象。
2.注意:new Date()接受傳參,傳參格式與上文提到的parse()方法傳參格式一致,但返回的數據時標準時間格式對象。
let date = new Date(); // Thu Dec 06 2018 09:29:58 GMT+0800 (中國標準時間)2-1 實例方法
從上圖可以看出所有的Date實例都繼承自Date.prototype。所有實例的屬性和方法即是繼承于Date構造函數原型上的屬性和方法。這些方法大致分為Getter,Setter,Conversion getter幾類。我主要是對Getter類的幾種方法進行分析。更多Date的原型方法可見Date對象實例方法
方法 | 描述 |
---|---|
getDate() | 返回一個月中的某一天(1 ~ 31) |
getDay() | 返回一周中的某一天(0 ~ 6),星期日為0,星期一為1 |
getMonth() | 返回月份(0 ~ 11) |
getFullYear() | 以四位數字返回年份 |
getHours() | 返回小時(0 ~ 23) |
getMinutes() | 返回分鐘(0 ~ 59) |
getSeconds() | 返回秒數(0 ~ 59) |
getTime() | 返回時間戳 |
通過上面表格的方法,我們可以對頁面上的日期進行轉換來與后臺進行交互。2-2 日期轉換方法
指定時間戳轉化成日期或者時間,可指定分割符和轉換類型。
function unixStandardDate(dates = Date.now(), separatorStr = "-", unixType = "date") { //把時間戳轉化成Date對象 let date = new Date(dates); //獲取年月日 let year = date.getFullYear(); let month = date.getMonth() + 1; month = month < 10 ? ("0" + month) : month; let day = date.getDate(); day = day < 10 ? ("0" + day) : day; //返回的年月日 let resultDate = year + separatorStr + month + separatorStr + day; //獲取時間 let hours = date.getHours(); hours = hours < 10 ? ("0" + hours) : hours; let minutes = date.getMinutes(); minutes = minutes < 10 ? ("0" + minutes) : minutes; let seconds = date.getSeconds(); seconds = seconds < 10 ? ("0" + seconds) : seconds; let resultTime = hours + ":" + minutes + ":" + seconds //判斷是轉換日期還是轉換時間 if (unixType === "date") { return resultDate; } else if (unixType === "time") { return resultDate + " " + resultTime; } } console.log(unixStandardDate(undefined, "/", "time")); //后臺返回的時間戳處理 console.log(unixStandardDate(1543622400000)); //打印結果 "2018/12/06 09:58:12" "2018-12-01"
指定日期或者時間,轉化成時間戳。
指定連接符替換只是為了方便不同格式的處理。
function unixTimeStamp(date, separatorStr) { let newDate = date.replace(eval("/"+ separatorStr +"/g"), "/"); let resultDate = new Date(newDate); let timeStamp = resultDate.getTime(); return timeStamp; } console.log(unixTimeStamp("2019-09-07 00:00:00", "-")); // 打印結果 1567785600000
返回當前月份的上一個月
function getPreMonth(date, separatorStr = "-") { let year = date.split(separatorStr)[0]; let month = date.split(separatorStr)[1]; //設置變量獲取前一個月 let resultYear = year; let resultMonth = parseInt(month) - 1; //判斷是否為1月份,返回上一年 if (resultMonth === 0) { resultYear = parseInt(resultYear) - 1; resultMonth = 12; } //判斷新的月份是否小于10 if (resultMonth < 10) { resultMonth = "0" + resultMonth;//月份填補成2位。 } return resultYear + separatorStr + resultMonth; } console.log(getPreMonth("2016-09", "-")); //打印結果 "2016-08"小結
寫本篇文章的主要目的只是為了更好的處理時間戳和日期格式在前后端交互工程中遇到的問題,關于更多的Date詳情,請移步JavaScript Date 對象
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/99773.html
摘要:使用中的對象已經很久了但是一直以來都沒有將常用的封裝函數和遇到的坑記錄下來趁著今天有空就記錄下來方便自己下次直接使用并提醒自己遇到過那些坑。利用設置日期時從設置當設置為時即上個月的最后一天參考 使用JS中的Date對象已經很久了,但是一直以來都沒有將常用的封裝函數和遇到的坑記錄下來,趁著今天有空,就記錄下來,方便自己下次直接使用,并提醒自己遇到過那些坑。如果有哪些地方不對,希望大家能夠...
摘要:中國標準時間將轉換后的標準日期轉換為時間戳。中國標準時間中國標準時間中國標準時間不設定時分秒,則默認轉換為一般情況下可以轉換以等分隔的日期形式,但是在中會出現不兼容的問題將所有的轉為即可 分類一:將日期轉換為時間戳 要將日期轉換為時間戳,首先得先獲取到日期,這里可以直接指定日期,或者是使用當前日期。要獲取當前日期,我們可以使用new Date()來獲取: (1)、將當前日期轉換為時間戳...
摘要:類是一個抽象類,它為特定瞬間與一組諸如等日歷字段之間的轉換提供了一些方法,并為操作日歷字段例如獲得下星期的日期提供了一些方法。是不變的日期時間對象代表一個日期時間,往往被視為年月日時分秒。獲得實例的日期和時間。 時區 GMT(Greenwich Mean Time):格林尼治時間,格林尼治標準時間的正午是指當太陽橫穿格林尼治子午線時(也就是在格林尼治上空最高點時)的時間。 UTC(U...
摘要:類是日期時間格式化子類的抽象類,我們通過這個類可以幫我們完成日期和文本之間的轉換也就是可以在對象與對象之間進行來回轉換。構造方法由于為抽象類,不能直接使用,所以需要常用的子類。 day01【Object類、常用API】 主要內容 Object類 Date類 DateFormat類 Calendar類 System類 StringBuilder類 包裝類 教學目標 -[ ] 能夠說出...
閱讀 3729·2021-10-14 09:43
閱讀 3314·2021-08-25 09:38
閱讀 613·2019-08-30 15:55
閱讀 1351·2019-08-30 13:05
閱讀 2245·2019-08-29 16:05
閱讀 508·2019-08-29 12:58
閱讀 2797·2019-08-29 12:34
閱讀 3246·2019-08-26 12:15