簡體   English   中英

將一個日期范圍分為給定日期的兩個單獨的日期范圍

[英]Split a single date range into two separate date range with a given date

我正在嘗試使用PHP將單個日期范圍划分為具有給定最后日期的兩個單獨的日期范圍。

例如,此日期范圍“ 2016-01-01 00:00:00”至“ 2019-02-14 23:59:59”將在下面具有這兩個日期范圍。 鑒於單獨的日期是2018年1月1日。

  1. '2016-01-01 00:00:00'-'2017-12-31 23:59:59'
  2. '2018-01-01 00:00:00'-'2019-02-14 23:59:59'

示例代碼如下。

$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'

這可以相當簡單地完成。 只需將分隔符轉換為時間戳即可,這樣您可以減去一秒鍾以獲得第一個期間的結束日期。 其余的非常簡單。

function separateDate($start, $end, $sepDate){
    return [
        [
            "start" => strtotime($start),
            "end" => strtotime($sepDate) - 1
        ],
        [
            "start" => strtotime($sepDate),
            "end" => strtotime($end)
        ]
    ];
}

我將所有日期時間都轉換為時間戳,以保持輸出一致。 再次將它們轉換為日期並不難。

暫無
暫無

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

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