我正在尝试从具有特定格式的字符串中获取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
答案 0 :(得分:3)
尝试以下代码:
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);
基于分隔符分割日期字符串,然后根据需要更改时间,将其转换为日期对象。
答案 1 :(得分:1)
感谢@RobG对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
答案 2 :(得分:0)
您可以根据需要使用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>