如何在PHP中获取两个unix时间戳,并在第二个日期简化的月份中显示日期范围
使用PHP,我希望获得两个unix时间戳,如果它们跨越不同的月份,则显示日期: 2013年12月6日至2014年1月8日 但要显示这样的日期范围: 2013年12月6日至8日 当它们不跨越一个月或一年时 我当前的代码如下(显然这不符合我的要求)。希望其他人已经解决了这个问题,或者它隐藏在date()的某个地方,而我只是不知道如何在PHP中获取两个unix时间戳,并在第二个日期简化的月份中显示日期范围,php,date,Php,Date,使用PHP,我希望获得两个unix时间戳,如果它们跨越不同的月份,则显示日期: 2013年12月6日至2014年1月8日 但要显示这样的日期范围: 2013年12月6日至8日 当它们不跨越一个月或一年时 我当前的代码如下(显然这不符合我的要求)。希望其他人已经解决了这个问题,或者它隐藏在date()的某个地方,而我只是不知道 <?php // Date $startDate = get_post_meta( get_the_ID(), 'wvc_session_start_timestam
<?php
// Date
$startDate = get_post_meta( get_the_ID(), 'wvc_session_start_timestamp', true );
$startDatePretty = date( 'F jS Y', $startDate);
$endDate = get_post_meta( get_the_ID(), 'wvc_session_end_timestamp', true );
$endDatePretty = date( 'F jS Y', $endDate);
$html .= '<div class="event-date">';
// check if the custom field has a value
if( ! empty( $startDate ) ) {
$html .= $startDatePretty;
}
// check if the custom field has a value
if( ! empty( $endDate ) ) {
if( $endDatePretty != $startDatePretty ) {
$html .= ' - ' . $endDatePretty;
}
}
只需检查日期是否在同一个月内:
if(日期('Ym',$startDate)=日期('Ym',$endDate)){
回显日期('F jS-',$startDate),日期('jS,Y',$endDate),“\n”;
}如果(日期('Y',$startDate)=日期('Y',$endDate)){
回显日期('F jS-',$startDate),日期('F jS,Y',$endDate),“\n”;
}否则{
回显日期('F jS Y-',$startDate),日期('F jS Y',$endDate),“\n”;
}
我想我自己已经搞定了逻辑。这可能是一种更干净/更简单的方法,但在我优化它之前,这会让我现在想要什么
// Date
$startDate = get_post_meta( get_the_ID(), 'wvc_session_start_timestamp', true );
$endDate = get_post_meta( get_the_ID(), 'wvc_session_end_timestamp', true );
if (empty($startDate) || empty($startDate)) {
$startDatePretty = date( 'F jS, Y', $startDate);
$endDatePretty = date( 'F jS, Y', $endDate);
} else {
$startDatePretty = date( 'F jS', $startDate);
$endDatePretty = date( 'jS, Y', $endDate);
// Different year
if (date('Y',$startDate) != date('Y',$endDate))
$startDatePretty .= date( ', Y', $startDate );
// Different month
if (date('F',$startDate) != date('F',$endDate))
$endDatePretty = date( 'F', $endDate) . $endDatePretty;
}
更简单,但是如果月份不同,年份相同,我只希望第一个日期输出显示月份。即2014年1月1日至2月1日,而不是2014年1月1日至2014年2月1日。@jb510:如果语句,只需添加另一个
,请参见更新答案中的演示。