關(guān)于導(dǎo)入excel時(shí)js轉(zhuǎn)換時(shí)間的正確方式
一、基礎(chǔ)
1、excel的日期是以1900-1-0開始計(jì)算的,既1900-1-1就是1天;
2、js的Date是以 1970-1-1 08:00:00 開始的;
excel時(shí)間換算如下:
點(diǎn)擊常規(guī)后變化如下:
二、問題描述
往往我們在做excel導(dǎo)入的時(shí)候,解析出來的是一個(gè)數(shù)字時(shí)間,這時(shí)候就有必要進(jìn)行時(shí)間格式化轉(zhuǎn)換了!
三、解決思路
1、用1970-1-1減去1900-1-1得到相差為:25567天 0小時(shí) 5分鐘 43秒;
2、減去多出來的1天8小時(shí);
js代碼如下:
let time = new Date((43831-25567) * 24 * 3600000 - 5 * 60 * 1000 - 43 * 1000 - 24 * 3600000 - 8 * 3600000) let year = time.getFullYear() + '' console.log('year:'+year) let month = time.getMonth() + 1 + '' console.log('month:'+month) let date = time.getDate() + '' console.log('data:'+date)
附:js讀取excel中日期格式轉(zhuǎn)換問題
在使用js-xlsx插件來讀取excel時(shí),會將2018/10/16這種數(shù)據(jù)自動裝換成48264.12584511.
所以需要自己手動再轉(zhuǎn)換回來
// excel讀取2018/01/01這種時(shí)間格式是會將它裝換成數(shù)字類似于46254.1545151415 numb是傳過來的整數(shù)數(shù)字,format是之間間隔的符號 formatDate(numb, format) { const time = new Date((numb - 1) * 24 * 3600000 + 1) time.setYear(time.getFullYear() - 70) const year = time.getFullYear() + '' const month = time.getMonth() + 1 + '' const date = time.getDate() - 1 + '' if (format && format.length === 1) { return year + format + month + format + date } return year + (month < 10 ? '0' + month : month) + (date < 10 ? '0' + date : date) }, console.log(formatDate(42618, '/')) // 2016-9-5
總結(jié)
到此這篇關(guān)于導(dǎo)入excel時(shí)js轉(zhuǎn)換時(shí)間的正確方式的文章就介紹到這了,更多相關(guān)導(dǎo)入excel時(shí)js轉(zhuǎn)換時(shí)間內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- JavaScript中各種時(shí)間轉(zhuǎn)換問題詳解(YYYY-MM-DD、時(shí)間戳、中國標(biāo)準(zhǔn)時(shí)間)
- JS的時(shí)間格式化和時(shí)間戳轉(zhuǎn)換函數(shù)示例詳解
- js時(shí)間轉(zhuǎn)換毫秒的實(shí)例代碼
- JS將時(shí)間秒轉(zhuǎn)換成天小時(shí)分鐘秒的字符串
- 淺談在Vue.js中如何實(shí)現(xiàn)時(shí)間轉(zhuǎn)換指令
- Vue.js 時(shí)間轉(zhuǎn)換代碼及時(shí)間戳轉(zhuǎn)時(shí)間字符串
- js實(shí)現(xiàn)把時(shí)間戳轉(zhuǎn)換為yyyy-MM-dd hh:mm 格式(es6語法)
- JS中國標(biāo)準(zhǔn)時(shí)間轉(zhuǎn)化為年月日時(shí)分秒'yyyy-MM-dd hh:mm:ss'的示例詳解
相關(guān)文章
JavaScript的DOM與BOM的區(qū)別與用法詳解
這篇文章主要為大家詳細(xì)介紹了JavaScript的DOM與BOM的區(qū)別與用法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助2022-03-03如何利用微信小程序獲取OneNet平臺數(shù)據(jù)顯示溫濕度
最近在工作中遇到了一個(gè)需求,需要顯示溫濕度,網(wǎng)上找了一圈沒找到解決方法,所以只能自己寫一個(gè),這篇文章主要給大家介紹了關(guān)于如何利用微信小程序獲取OneNet平臺數(shù)據(jù)顯示溫濕度的相關(guān)資料,需要的朋友可以參考下2022-03-03uni-app使用Vite.config.js配置文件的超詳細(xì)教程
這篇文章主要給大家介紹了關(guān)于uni-app使用Vite.config.js配置文件的超詳細(xì)教程,在uniapp開發(fā)中,vue.config.js是配置webpack的關(guān)鍵文件之一,也可以說是uniapp項(xiàng)目自定義配置的中心,需要的朋友可以參考下2023-12-12css值轉(zhuǎn)換成數(shù)值請拋棄parseInt
絕大多數(shù)人喜歡用parseInt()把css中的字符串值轉(zhuǎn)換成數(shù)值2011-10-10window.event快達(dá)到全瀏覽器支持了,以后使用就方便了
在Tangram群里討論到<a href="#" onclick="baidu.event.preventDefault(event);">的寫法時(shí),以為標(biāo)準(zhǔn)瀏覽器只能用arguments[0]來獲取到event,結(jié)果nodiseal同學(xué)說已經(jīng)可以這么用了,于是做了以下測試2011-11-11JS添加刪除一組文本框并對輸入信息加以驗(yàn)證判斷其正確性
需要添加幾組數(shù)據(jù)到數(shù)據(jù)庫,但是具體幾組數(shù)據(jù)不確定,有客戶來填寫,所以,這里我用JS進(jìn)行添加刪除子方案,并要對方案輸入的正確性加以判斷,感興趣的朋友可以了解下2013-04-04EasyUI的DataGrid綁定Json數(shù)據(jù)源的示例代碼
本篇文章主要介紹了EasyUI的DataGrid綁定Json數(shù)據(jù)源的示例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-12-12