摘要:解決思路將現有的時間字符串先轉換為時間戳使用時間戳創建對象,然后利用的方法獲取相應的年月日時分秒的值補,并生成所需的時間字符串涉及知識點時間戳概念從年月日時到指定日期字符串的毫秒數。
待解決問題
JS開發遇到了個問題:前端vue的UI組件生成的時間字符串格式是 2018-9-12 9:11:23,而后臺只能識別2018-09-12 09:11:23這樣的時間字符串,即要將時間字符串格式做轉換,數字是個位數的值前面要補0。
解決思路將現有的時間字符串先轉換為時間戳
使用時間戳創建Date對象,然后利用Date的方法獲取相應的年、月、日、時、分、秒的值
補0,并生成所需的時間字符串
涉及知識點時間戳概念:從1970年1月1日0時到指定日期(字符串)的毫秒數。
需利用JS中的Date對象處理日期和時間,用到的方法如下:
Date.parse(timestr): 返回timestr的時間戳 var time = newDate(timestamp) 利用時間戳創建Date對象
JavaScript Date對象的方法可參考:http://www.w3school.com.cn/js...
時間字符串是按需自行組裝的,補0就需想辦法解決,網上有多種方法。
以下是轉換過程:
將時間字符串轉換為時間戳//mytime是待轉換時間字符串,格式:"2018-9-12 9:11:23" dateTmp = mytime.replace(/-/g,"/") //為了兼容IOS,需先將字符串轉換為"2018/9/11 9:11:23" timestamp = Date.parse(dateTmp) //返回"2018-9-12 9:11:23"的時間戳將時間戳轉換為所需格式的時間字符串
var dateFormat = function(timestamp){ var time = newDate(timestamp) //先將時間戳轉為Date對象,然后才能使用Date的方法 var year = time.getFullYear(), month = time.getMonth() + 1 , //月份是從0開始的 day = time.getDate(), hour = time.getHours(), minute = time.getMinutes(), second = time.getSeconds() //add0()方法在后面定義 return year+"-"+this.add0(month)+"-"+ this.add0(day)+""+this.add0(hour)+":"+this.add0(minute)+":"+this.add0(second) }補0的方法add0
補0的方法網上有很多,我使用的方法如下:
var add0 = function(m){ return m < 10 ? "0" + m: m }總結
需要了解JavaScript中的Date對象。
要理解字符串轉換的思路:即字符串--時間戳---Date對象---攢新的字符串,有思路后做起來就順理成章了。
本文總結的是一種解決思路,網上有更詳細、全面的方法,文章地址如下:
https://blog.csdn.net/FengNex...
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/97756.html
摘要:使用中的對象已經很久了但是一直以來都沒有將常用的封裝函數和遇到的坑記錄下來趁著今天有空就記錄下來方便自己下次直接使用并提醒自己遇到過那些坑。利用設置日期時從設置當設置為時即上個月的最后一天參考 使用JS中的Date對象已經很久了,但是一直以來都沒有將常用的封裝函數和遇到的坑記錄下來,趁著今天有空,就記錄下來,方便自己下次直接使用,并提醒自己遇到過那些坑。如果有哪些地方不對,希望大家能夠...
閱讀 1371·2021-09-30 09:55
閱讀 1897·2021-08-27 13:10
閱讀 2244·2019-08-29 17:22
閱讀 1298·2019-08-29 16:30
閱讀 3464·2019-08-26 18:37
閱讀 2348·2019-08-26 11:47
閱讀 1162·2019-08-23 14:44
閱讀 1740·2019-08-23 13:46