第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

(php) 將持續(xù)時間更改為我的日歷可用的內(nèi)容

(php) 將持續(xù)時間更改為我的日歷可用的內(nèi)容

PHP
茅侃侃 2023-04-02 11:00:08
我有以下格式的一系列事件日期(可變持續(xù)時間):2020 年 4 月 28 日2020年5月3日至5日2020年5月3日至6月5日2020年12月20日 - 2021年1月15日為了便于閱讀,我想保持這種方式。但是我的日歷需要一種標準的方式來讀取這些,以便它可以輸出這些事件:2020年4月28日應(yīng)該變成2020年4月28日 - 2020年4月28日2020年5月3日至5日應(yīng)成為2020年5月3日至2020年5月5日2020年5月3日至6月5日應(yīng)改為2020年5月3日至2020年6月5日2020 年 12 月 20 日 - 2021 年 1 月 15 日 ==> 這個日歷可以處理。關(guān)于如何在 php 中執(zhí)行此操作的任何想法?
查看完整描述

2 回答

?
慕田峪9158850

TA貢獻1794條經(jīng)驗 獲得超8個贊

我真的建議將您的日期存儲為兩個單獨的值(開始/結(jié)束),然后對輸出進行格式化,而不是嘗試解碼格式化的輸出。

如果您堅持使用這種方法,您可以使用preg_match匹配不同的格式,然后從匹配的值中提取開始和結(jié)束日期:

$dates = array(

? ? '28 April 2020',

? ? '3 - 5 May 2020',

? ? '3 May - 5 June 2020',

? ? '20 Dec 2020 - 15 Jan 2021'

? ? );


foreach ($dates as $date) {

? ? preg_match('/^(\d+)\s(\w+)\s(\d+)(?:\s-\s(\d+)\s(\w+)\s(\d+))?|(\d+)\s(\w+)\s-\s(\d+)\s(\w+)\s(\d+)|(\d+)\s-\s(\d+)\s(\w+)\s(\d+)$/', $date, $matches);

? ? if (isset($matches[12])) {

? ? ? ? // dd - dd mmm yyyy format

? ? ? ? $start_date = "${matches[12]} ${matches[14]} ${matches[15]}";

? ? ? ? $end_date? ?= "${matches[13]} ${matches[14]} ${matches[15]}";

? ? }

? ? elseif (isset($matches[7])) {

? ? ? ? // dd mmm - dd mmm yyyy format

? ? ? ? $start_date = "${matches[7]} ${matches[8]} ${matches[11]}";

? ? ? ? $end_date? ?= "${matches[9]} ${matches[10]} ${matches[11]}";

? ? }

? ? elseif (isset($matches[4])) {

? ? ? ? // dd mmm yyyy - dd mmm yyyy format

? ? ? ? $start_date = "${matches[1]} ${matches[2]} ${matches[3]}";

? ? ? ? $end_date? ?= "${matches[4]} ${matches[5]} ${matches[6]}";

? ? }

? ? elseif (isset($matches[1])) {

? ? ? ? // dd mmm yyyy format

? ? ? ? $start_date = "${matches[1]} ${matches[2]} ${matches[3]}";

? ? ? ? $end_date? ?= "${matches[1]} ${matches[2]} ${matches[3]}";

? ? }

? ? else {

? ? ? ? // no match

? ? ? ? $start_date = '???';

? ? ? ? $end_date = '???';

? ? }

? ? echo "$start_date - $end_date\n";

}

輸出:


28 April 2020 - 28 April 2020

3 May 2020 - 5 May 2020

3 May 2020 - 5 June 2020

20 Dec 2020 - 15 Jan 2021


查看完整回答
反對 回復(fù) 2023-04-02
?
三國紛爭

TA貢獻1804條經(jīng)驗 獲得超7個贊

你可以嘗試這樣的事情:


$inputDateString = "28 April 2020";

$dateObject = DateTime::createFromFormat("j F Y",$inputDateString); 

echo $dateObject->format('d m Y') . " - " . $inputDateString->format('d m Y');


$inputDateString1 = "3 May";

$dateObject1 = DateTime::createFromFormat("j F",$inputDateString1); 


$inputDateString2 = "5 May 2020";

$dateObject2 = DateTime::createFromFormat("j F Y",$inputDateString2);

echo $dateObject1->format('d m ').date('Y'); . " - ". $dateObject2->format('d m Y');

計算間隔


$interval = $dateObject2->diff($dateObject1);

echo $interval->format('%d days');


查看完整回答
反對 回復(fù) 2023-04-02
  • 2 回答
  • 0 關(guān)注
  • 133 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號