如何将使用日期范围选择器获得的值转换为两个单独的日期和时间?

Posted

技术标签:

【中文标题】如何将使用日期范围选择器获得的值转换为两个单独的日期和时间?【英文标题】:How can I convert the value I get with date range picker to two seperate date and time? 【发布时间】:2021-09-16 21:01:22 【问题描述】:

我需要分别获取我使用 daterangepicker 获得的开始日期、开始时间、结束日期和结束时间值。

startinnerDate = document.getElementById('reservationtime').value;

传入值:“07/14/2021 12:00 AM - 08/10/2021 11:00 PM”

如何分开?

【问题讨论】:

String.prototype.split() 【参考方案1】:

你可以通过几个拆分来解决:

const res = "07/14/2021 12:00 AM - 08/10/2021 11:00 PM";

function parseRes(res) 
  const [d1, d2] = res.split("-");
  const [departureDate, departureTime] = d1.trim().split(/\d\s\d/);
  const [arrivalDate, arrivalTime] = d2.trim().split(/\d\s\d/);
  return departureDate, departureTime, arrivalDate, arrivalTime;


console.log(parseRes(res));

【讨论】:

【参考方案2】:

不是最佳的,也不灵活,但很容易理解

const startinnerDate = "07/14/2021 12:00 AM - 08/10/2021 11:00 PM"
const [start, end]  = startinnerDate.split(' - ');
const [startDate, startTime, startTimePeriod] = start.split(' ');
const [endDate, endTime, endTimePeriod] = end.split(' ');
console.log('date >>> ', startDate, '| time >>> ', startTime + ' ' + startTimePeriod);
console.log('date >>> ', endDate, '| time >>> ', endTime + ' ' + endTimePeriod);

【讨论】:

成功了。谢谢。我还需要找到日值。例如,如果 startdate="14/07/2021" 我怎样才能得到星期三的值为 3? 最好的方法是将日期+时间字符串转换为日期对象。根据您的需要 - 日、月、年、小时、分钟。只需阅读文档如何做到这一点。不要认为这应该在这里解释。不是最优的。 startDate 和 endDate 来自上一个代码 sn -p ``` const startDayOfWeek = new Date(startDate).getDay(); const endDayOfWeek = new Date(endDate).getDay(); ```

以上是关于如何将使用日期范围选择器获得的值转换为两个单独的日期和时间?的主要内容,如果未能解决你的问题,请参考以下文章

如何将使用 datetimepicker 获得的值转换为日期和时间?

jQuery 多日期选择器问题

角度日期范围选择器 - 如何在已经使用 min 属性将最小日期设置为今天时禁用同一天

如何将 Angular 日期范围选择器中的日期设置为该月的第一天

如何在同一行获得两个日期选择器?

jquery-ui datepicker 设置开始结束时间选择范围