這工作...
function humanDateRanges($start, $end){
$startTime=strtotime($start);
$endTime=strtotime($end);
if(date('Y',$startTime)!=date('Y',$endTime)){
echo date('F j, Y',$startTime) . " to " . date('F j, Y',$endTime);
}else{
if((date('j',$startTime)==1)&&(date('j',$endTime)==date('t',$endTime))){
echo date('F',$startTime) . " to " . date('F, Y',$endTime);
}else{
if(date('m',$startTime)!=date('m',$endTime)){
echo date('F j',$startTime) . " to " . date('F j, Y',$endTime);
}else{
echo date('F j',$startTime) . " to " . date('j, Y',$endTime);
}
}
}
}
humanDateRanges("2015-04-20", "2015-04-22");
//April 20 to 22, 2015
humanDateRanges("2015-04-01", "2015-05-31");
//April to May, 2015
humanDateRanges("2015-04-30", "2015-05-02");
//April 30 to May 2, 2015
humanDateRanges("2014-05-02", "2015-05-02");
//May 2, 2014 to May 2, 2015
但我認爲在某些情況下,甚至人類需要被告知4月 - 5月將開始第一場比賽並且在第31場結束。
我不認爲你可以做這樣的事情,沒有一點工作。不過,本地DateTime類將完成大部分閱讀日期併爲您設置格式的工作! – Morgan
實際上日期格式看起來很隨意。人們不一定知道「2015年4月至5月」意味着4月1日至5月31日。爲什麼不更具體,併爲所有間隔使用相同的格式。 –
你以爲!人類填補你知道的空白。他們非常清楚這次活動將在4月和5月舉行。人類也喜歡短而直觀的格式。像2015-04-01到2015-05-31這樣的格式比2015年4月到5月更長,難以理解和評估。恕我直言 –