我目前正在使用PHP ROUND
,ABS
,STRTOTIME
来计算两个日期之间的差异。
计算有效,直到您从新年中选择$_SESSION['b_checkout']
。即,如果b_checkin
为12月30日且b_checkout
为12月31日,则会返回正确的$no_nights
为1天。
$_SESSION['b_checkin']
和$_SESSION['b_checkout']
正在使用'D F jS Y'
日期格式。 e.g。
$_SESSION['b_checkin'] = "Wednesday, 31 December, 2014"
$_SESSION['b_checkout'] = "Thursday, 1 January, 2015"
$no_nights = round(abs(strtotime($_SESSION['b_checkout']) - strtotime($_SESSION['b_checkin']))/(60*60*24));
目前此输出(echo $no_nights
)363天而不是1天。有什么问题?
答案 0 :(得分:1)
删除所有逗号并看其有效!
$b_checkin = "Wednesday 31 December 2014";
$b_checkout = "Thursday 1 January 2015";
$no_nights = round(abs(strtotime($b_checkout) - strtotime($b_checkin))/(60*60*24));
echo $no_nights;
当php无法正确解释年份时,它会使用当前年份进行解析。这就是你如何获得363天的结果。
答案 1 :(得分:0)
使用以下格式进行签入和结帐
// 'F jS Y'
$_SESSION['b_checkin'] = "31 December, 2014";
$_SESSION['b_checkout'] = "1 January, 2015";
希望这会有所帮助;)
干杯!!!