3

可能重复:
距离 XXX 日期还有多少天?

目前我正在使用此代码来确定距离预期日期还有多少天。但是这段代码显示了意想不到的结果。例如,如果 $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,我的意思是亚洲/达卡。

4

1 回答 1

9

根据 PHP文档

<?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)');

?>
于 2012-12-25T01:07:20.713 回答