我正在尝试使用PHP将单个日期范围划分为两个具有给定最后日期的单独日期范围。
例如,此日期范围“ 2016-01-01 00:00:00”到“ 2019-02-14 23:59:59”将在下面具有这两个日期范围。鉴于单独的日期是2018年1月1日。
如下所示的示例代码。
$start = '2016-01-01 00:00:00';
$end = '2019-02-14 23:59:59';
$sepDate = '2018-01-01';
$dateRange = separateDate($start, $end, $sepDate);
function separateDate($start, $end, $sepDate){
//separate date function
}
Output:
$dateRange[0]['start'] //'2016-01-01 00:00:00'
$dateRange[0]['end'] //'2017-12-31 23:59:59'
$dateRange[1]['start'] //'2018-01-01 00:00:00'
$dateRange[1]['end'] //'2019-02-14 23:59:59'
答案 0 :(得分:4)
这可以非常简单地完成。只需将分隔符转换为时间戳即可,这样您可以减去一秒钟以获得第一个期间的结束日期。其余的非常简单。
function separateDate($start, $end, $sepDate){
return [
[
"start" => strtotime($start),
"end" => strtotime($sepDate) - 1
],
[
"start" => strtotime($sepDate),
"end" => strtotime($end)
]
];
}
我将所有日期时间都转换为时间戳,以保持输出一致。再次将它们转换为日期并不难。