PHP strtotime返回整年而不是一天

时间:2014-11-05 04:26:53

标签: php strtotime

我目前正在使用PHP ROUNDABSSTRTOTIME来计算两个日期之间的差异。

计算有效,直到您从新年中选择$_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天。有什么问题?

2 个答案:

答案 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";

希望这会有所帮助;)

干杯!!!