通过使用php删除重复部分来简化两个日期

通过使用php删除重复部分来简化两个日期,php,string,date,Php,String,Date,是否有一种功能或速记方法可以写出两个日期而不重复不必要的信息 e、 g,如果我通过date函数打印出两个日期,例如 2018年10月4日至2018年10月12日 有没有办法排除重复的信息?在这个例子中,我希望它写出来的是 2018年10月4日至12日 因为月份和年份是重复的,但我不要求只使用day操作符写出第一个日期。因此,如果有可能让它明白,它是否也需要写出月份 e、 g, 2018年10月29日至2018年11月3日 变为 2018年10月29日至11月3日 因为日期和月份不同,但年份不同

是否有一种功能或速记方法可以写出两个日期而不重复不必要的信息

e、 g,如果我通过date函数打印出两个日期,例如

2018年10月4日至2018年10月12日

有没有办法排除重复的信息?在这个例子中,我希望它写出来的是

2018年10月4日至12日

因为月份和年份是重复的,但我不要求只使用day操作符写出第一个日期。因此,如果有可能让它明白,它是否也需要写出月份

e、 g,

2018年10月29日至2018年11月3日

变为

2018年10月29日至11月3日

因为日期和月份不同,但年份不同


有办法吗?

使用
explode()
拆分日期,并使用
for
循环返回数组。循环内检查是否每个日期项都相同,将其从数组中删除。循环后,使用
内爆()
将数组转换为字符串

$date = "29th October 2018";
$date2 ="3rd November 2018";
$exp = explode(" ", $date);
$exp2 = explode(" ", $date2);

for($i=sizeof($exp)-1; $i>0; $i--)
    if ($exp[$i] == $exp2[$i])
        unset($exp[$i]);   

$newDate = implode(" ", $exp)." - ".implode(" ", $exp2);
// 29th October - 3rd November 2018

检查

中的结果将日期拆分为多个部分,检查年份部分是否匹配,如果匹配,则将其从第一个日期删除。检查月份部分是否匹配,必要时也将其删除。然后输出剩下的内容。利用谷歌搜索从堆栈交换()生成一个结果,自定义函数必须编写@DanielProtopopov,啊,这就是我一直在寻找的东西,我不确定要搜索什么,大多数时候它返回的结果是获取日期之间的实际差异,而不是格式代码。我喜欢这种方法,它很好,很简单,只需要文本字符串,去掉重复的内容。