目前我正在使用此代码来确定预计的一天剩余的天数。但是此代码显示了意外的结果。例如,如果$ last_date是2012年12月26日,那么我将获得0 day(s) left.
但它应该是1 day(s) left.
我认为我的问题仅在于floor()
函数。不是吗?
$timezone = "Asia/Dhaka";
if(function_exists('date_default_timezone_set')) date_default_timezone_set($timezone);
$now = time();
$last_date = strtotime("$year-$month-$day");
$datediff = $last_date - $now;
$day_left=floor($datediff/(60*60*24));
echo "$day_left day(s) left.";
N:B:我的时区是+6 GMT,我的意思是亚洲/达卡。
答案 0 :(得分:9)
根据PHP documentation:
<?php
$year = '2012';
$month = '12';
$day = '26';
$current_date = new DateTime(date('Y-m-d'), new DateTimeZone('Asia/Dhaka'));
$end_date = new DateTime("$year-$month-$day", new DateTimeZone('Asia/Dhaka'));
$interval = $current_date->diff($end_date);
echo $interval->format('%a day(s)');
?>