摘要:背景有時(shí)候我們?cè)谂軘?shù)據(jù)時(shí)可能會(huì)遇到將指定日期變?yōu)楹笠惶斓娜掌凇K悸匪悸菲鋵?shí)很簡(jiǎn)單,就是獲取當(dāng)前時(shí)間戳,計(jì)算一天的毫秒數(shù),即可得后一天的時(shí)間戳,隨后通過(guò)獲取年月日即可。
背景
有時(shí)候我們?cè)谂軘?shù)據(jù)時(shí)可能會(huì)遇到將指定日期變?yōu)楹笠惶斓娜掌凇?yīng)用場(chǎng)景如下:今天是4月23日17:00,我想獲取所有4月22日到23日兩天的復(fù)聯(lián)4新增預(yù)售票房信息,所以理論上我們應(yīng)該統(tǒng)計(jì)4月22日00:00——4月24日00:00的數(shù)據(jù),但是用戶有可能下意識(shí)的就會(huì)選擇22、23。
有人也許會(huì)說(shuō),加個(gè)提示不就行了何必這么麻煩?在日期選擇里有時(shí)候產(chǎn)品會(huì)要求當(dāng)前日期之后的日子不可選(略杠精)那么這種情況下,上述需求就需要咱們處理了,存在即合理hhh。那么如何實(shí)現(xiàn)呢?
首先眾所周知,在編程時(shí),日期有一個(gè)通用的標(biāo)準(zhǔn)就是時(shí)間戳(timestamp),時(shí)間戳是指格林威治時(shí)間1970年01月01日00時(shí)00分00秒(北京時(shí)間1970年01月01日08時(shí)00分00秒)起至現(xiàn)在的總秒數(shù)/總毫秒數(shù)(但毫秒數(shù)更為常見(jiàn),也更加精確)。
思路其實(shí)很簡(jiǎn)單,就是獲取當(dāng)前時(shí)間戳A,計(jì)算一天的毫秒數(shù)B,即可得后一天的時(shí)間戳C=A+B,隨后通過(guò)C獲取年月日即可。
代碼在項(xiàng)目里用TS寫的,不用太糾結(jié)于變量的類型聲明,其他都差不多
dateFormat(d: Date, str: string, isEndDate: boolean) { let mon = d.getMonth() + 1; let day = d.getDate();//設(shè)置默認(rèn)的月份和天數(shù) if (isEndDate) { //當(dāng)輸入為結(jié)束日期時(shí),執(zhí)行如下代碼 d.setTime(date.getTime() + 3600 * 24 * 1000); day = d.getDate(); mon = d.getMonth() + 1; } let monthString = mon.toString(); if (mon < 10) { //當(dāng)月份小于10時(shí),顯示月份的時(shí)候在前面加一個(gè)0 monthString = "0" + monthString; } let dayString = day.toString(); if (day < 10) { //當(dāng)天數(shù)小于10時(shí),顯示天數(shù)的時(shí)候在前面加一個(gè)0 dayString = "0" + dayString; } //根據(jù)傳進(jìn)的str來(lái)返回指定的時(shí)間格式,str可以為任意格式的字符串 return [d.getFullYear(), monthString, dayString].join(str); } this.dateFormat(new Date(), "-", true); //當(dāng)前時(shí)間為2019年4月23日,此時(shí)輸出為2019-4-24
Done,后期會(huì)總結(jié)一些關(guān)于日期相關(guān)計(jì)算的思路,可能簡(jiǎn)單的就不寫code了。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/103799.html
摘要:處理時(shí)間的函數(shù)功能強(qiáng)大,相信大家都有目共睹,日常中如果涉及到很多時(shí)間處理方面的需求,函數(shù)的以下用法絕對(duì)讓你面對(duì)時(shí)間處理不再發(fā)愁非常直觀的一些用用法獲取相比當(dāng)前時(shí)間前天的時(shí)間戳這個(gè)取值可以隨意改變相比于當(dāng)前時(shí)間戳減去的時(shí)間當(dāng)前日期的前天的 PHP處理時(shí)間的函數(shù)功能強(qiáng)大,相信大家都有目共睹,日常中如果涉及到很多時(shí)間處理方面的需求, strtotime函數(shù)的以下用法絕對(duì)讓你面對(duì)時(shí)間處理不再發(fā)...
摘要:在里面全局使用引入使用中文時(shí)間其他地方調(diào)用的方法獲取當(dāng)前時(shí)間返回當(dāng)前時(shí)間時(shí)間對(duì)象返回當(dāng)前時(shí)間毫秒數(shù)返回結(jié)果格式化當(dāng)前時(shí)間格式化時(shí)間戳以秒為單位格式化時(shí)間戳以毫秒為單位原生對(duì)象同對(duì)象相互轉(zhuǎn)換轉(zhuǎn)換為對(duì)象轉(zhuǎn)換為對(duì)象當(dāng)前時(shí)間取值操 # moment.js ## 在vue里面全局使用 main.js // 引入moment import moment from moment import mom...
摘要:用了一段時(shí)間的開(kāi)發(fā)項(xiàng)目,也是第一次用來(lái)開(kāi)發(fā)項(xiàng)目,所有有許多相關(guān)的知識(shí)點(diǎn)需要總結(jié),本文所介紹的的日期時(shí)間處理就是最近用到的,希望對(duì)各位有所幫助,也同時(shí)作為自己的筆記儲(chǔ)存。提供了等模塊用于處理日期和時(shí)間,較為常用的還是模塊。 用了一段時(shí)間的django開(kāi)發(fā)web項(xiàng)目,也是第一次用python來(lái)開(kāi)發(fā)項(xiàng)目,所有有許多相關(guān)的知識(shí)點(diǎn)需要總結(jié),本文所介紹的python的日期時(shí)間處理就是最近用到的,希...
摘要:實(shí)際上是格林威治標(biāo)準(zhǔn)時(shí)間的同義詞默認(rèn)情況下,中的幾乎每個(gè)日期方法除了一個(gè)都是本地時(shí)間。如果你住在格林威治標(biāo)準(zhǔn)時(shí)間晚的的地區(qū),你會(huì)得到一個(gè)日期是月日。需要知道對(duì)象日期方法。 為了保證的可讀性,本文采用意譯而非直譯。 想閱讀更多優(yōu)質(zhì)文章請(qǐng)猛戳GitHub博客,一年百來(lái)篇優(yōu)質(zhì)文章等著你! JS中的 Date 很奇怪。當(dāng)我們需要處理日期和時(shí)間的時(shí)候比較麻煩,經(jīng)常借助像date-fns和 Mom...
摘要:雖然大家都用過(guò)這個(gè)時(shí)間選擇控件,但是卻很少有人去研究其中原理。最近這邊本人利用閑暇時(shí)間自己寫了一個(gè)時(shí)間選擇控件,借這個(gè)時(shí)間選擇控件向各位同學(xué)們闡述這個(gè)時(shí)間選擇控件的原理。 前言 ??說(shuō)到這個(gè)時(shí)間選擇控件,網(wǎng)上有很多各式各樣的,相信很多同學(xué)們也都有用過(guò),所以大家對(duì)這個(gè)也不陌生。雖然大家都用過(guò)這個(gè)時(shí)間選擇控件,但是卻很少有人去研究其中原理。最近這邊本人利用閑暇時(shí)間自己寫了一個(gè)時(shí)間選擇控件,...
閱讀 2089·2021-11-23 09:51
閱讀 3697·2021-10-20 13:49
閱讀 1706·2021-09-06 15:13
閱讀 1816·2021-09-06 15:02
閱讀 3154·2021-09-02 15:11
閱讀 890·2019-08-29 15:37
閱讀 1732·2019-08-29 13:24
閱讀 2274·2019-08-29 11:28