PHP是这么好做,我想知道如果有什么我需要的功能。
对于持续超过一天的活动,人类的方式对其进行格式化是复杂的。
例子...
活动之一:从2015年4月20日至2015年4月22日可能被格式化为这样的人:4月20-22日2015年
事件二:从2015-04-01到2015年5月31日人类 - >四月至2015年5月
事件三:2015年4月30日至2015年5月2日人类 - > 4月30日至5月2日到2015年
总之,绝不重复什么并不需要重复。 链接以“ - ”尽可能多地。
它必须进行本地化和格式可以根据当地的变化。 对于为例,美国的人喜欢MONTHNAME DayNumber一年,但法国人喜欢DayNumber MONTHNAME年。
我打算等编程格式,但我想知道,如果它已经存在:)
该工程...
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
但我认为在某些情况下,甚至人类需要被告知,四月,五月将开始第1和结束31日。
万一别人绊倒在这样的:我已经写了尝试的方式,还与国际化来解决这个问题,一个小型图书馆:
https://github.com/flack/ranger
它应该包括针对LTR语言合理的默认值(和RTL的支持不应该太难添加)