js读取excel中日期格式转换问题
生活随笔
收集整理的這篇文章主要介紹了
js读取excel中日期格式转换问题
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
方法一、
在使用js-xlsx插件來讀取excel時,會將2018/10/16這種數據自動裝換成48264.12584511.
所以需要自己手動再轉換回來
// excel讀取2018/01/01這種時間格式是會將它裝換成數字類似于46254.1545151415 numb是傳過來的整數數字,format是之間間隔的符號1.方法①:?
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-52. 方法②:
//excel日期格式轉換 numb為數字,format為拼接符“-”function formatDate(numb, format) {// 1. 第一種寫法if (numb != undefined) {let time = new Date((numb - 1) * 24 * 3600000 + 1)time.setYear(time.getFullYear() - 70)let year = time.getFullYear() + ''let month = time.getMonth() + 1 + ''let date = time.getDate() + ''if (format && format.length === 1) {return year + format + month + format + date}return year + (month < 10 ? '0' + month : month) + (date < 10 ? '0' + date : date)} else {return undefined;}// 2. 第二種寫法let time = new Date( (numb - 25567) * 24 * 3600000 - 5 * 60 * 1000 -43 * 1000 - 24 * 3600000 - 8 * 3600000 );let year = time.getFullYear() + ''let month = time.getMonth() + 1 + ''let date = time.getDate() + ''if (format && format.length === 1) {return year + format + month + format + date}return year + (month < 10 ? '0' + month : month) + (date < 10 ? '0' + date : date)}方法二、時分秒轉換:
function formatTime(numb, format) {var hourTmp = numb * 24;var hour = Math.floor(hourTmp);var minuteTmp = hourTmp - hour;var minute = Math.round(minuteTmp * 60);return (hour < 10 ? '0' + hour : hour) + format + (minute < 10 ? '0' + minute : minute); }方法三、Js如何將一串數字轉換為時間格式yyyy-MM-dd hh:mm:ss
var time='20190306214635' time.replace(/(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})/g, '$1-$2-$3 $4:$5:$6');輸出?
2019-03-06 21:46:35方法四、
今天寫了一個ajax請求,當獲取對象中的某個日期屬性時,發現打印出來是一串數字,例如:1394786876000。可能有人會有疑問了,明明是日期格式,為什么不返回日期,而返回一串數字呢?其實這串數字是個時間戳,也就是從格林威治時間1970年01月01日00時00分00秒起至返回的那個日期的總秒數。如何將時間戳轉化為我們需要的格式呢。
在此只介紹一種簡單的方法,也是我從網上找來的:
1、在js中先加載一下代碼,不需要做任何修改Date.prototype.format =function(format){var o = {"M+" : this.getMonth()+1, //month"d+" : this.getDate(), //day"h+" : this.getHours(), //hour"m+" : this.getMinutes(), //minute"s+" : this.getSeconds(), //second"q+" : Math.floor((this.getMonth()+3)/3), //quarter"S" : this.getMilliseconds() //millisecond}if(/(y+)/.test(format)) format=format.replace(RegExp.$1,(this.getFullYear()+"").substr(4- RegExp.$1.length));for(var k in o)if(new RegExp("("+ k +")").test(format))format = format.replace(RegExp.$1,RegExp.$1.length==1? o[k] :("00"+ o[k]).substr((""+ o[k]).length));return format;}2、使用new Date(時間戳).format('yyyy-MM-dd')方法進行轉化即可,返回的就是yyyy-MM-dd格式的值。最后為了方便大家的溝通與交流請加QQ群:?625787746
請進QQ群交流:【IT博客技術分享群①】:正在跳轉
總結
以上是生活随笔為你收集整理的js读取excel中日期格式转换问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何查看各类期刊的影响因子
- 下一篇: NTC热敏电阻测试和检验设备