簡體   English   中英

將字符串解析為具有特定格式的Date對象

[英]Parse string to Date object with specific format

我正在嘗試從具有特定格式的字符串中獲取Date js對象。

我的字符串日期看起來像這樣:

2019-04-22 05:00:11

我正在嘗試以這種方式進行操作,但是我沒有達到預期的結果:

date_string = "2019-04-22 05:00:11"
date = Date.parseDate(date_string, "YYYY-MM-DD HH:mm:ss")

之后,我想將此Date對象添加一個30分鍾的time_delta,並以字符串格式表示它,我認為應該采用以下方式:

new_date = new Date(date.getTime() + i*30*60000)
final_date_string = new_date.toString();

我希望final_date_string看起來像這樣:

2019-04-22 05:30:11

試試這個代碼:

let [y,M,d,h,m,s] = '2019-04-22 05:00:11'.split(/[- :]/);
new Date(y,parseInt(M)-1,d,h,parseInt(m)+30,s);

根據分隔符分割日期字符串,然后根據需要的時間更改將其轉換為日期對象。

感謝@RobG對Date.parse()方法的潛在錯誤的Date.parse()

嘗試使用Vanilla JavaScript的getTime()函數並添加30秒:

let date_string = "2019-04-22 05:00:11"
let dateArray = date_string.split(/[- :]/);
let plusThirty = new Date(dateArray[0], parseInt(dateArray[1]-1), parseInt(dateArray[2])
    , dateArray[3], parseInt(dateArray[4]) + 30, dateArray[5]);    
console.log('plusThirty: ', plusThirty);

let dateString = plusThirty.getFullYear() + "-" + (plusThirty.getMonth() + 1) 
    + "-" + plusThirty.getDate() + " " + plusThirty.getHours() + ":" 
    + plusThirty.getMinutes() + ":" + plusThirty.getSeconds();
console.log('dateString: ', dateString);

輸出:

plusThirty:  Mon Apr 22 2019 05:30:11
dateString:  2019-4-22 5:30:11

您可以根據需要使用momentjs,momentjs是DateTime句柄的流行庫

let date_string = "2019-04-22 05:00:11"
let date = moment(date_string, "YYYY-MM-DD HH:mm:ss");
date.add(30, 'minutes');

console.log(date.format('YYYY-MM-DD HH:mm:ss'));

 let date_string = "2019-04-22 05:00:11" let date = moment(date_string, "YYYY-MM-DD HH:mm:ss"); date.add(30, 'minutes'); final_date_string = date.format('YYYY-MM-DD HH:mm:ss') console.log(final_date_string); 
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.js"></script> 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM