PHPs DateTime没有做我期望它在这里做的事情....
dim_t dims[] = {10, 10}
af_randu(&a, 2, dims, f32);
在奥克兰,这是一个星期天,但即使我明确更改TimeZone没有任何变化,它仍然显示为星期六。
如何让DateTime更改日期以匹配时区?
此外,如果将新的DateTimeZone对象传递给DateTime对象绝对没有任何意义,那么首先传递它的重点是什么?这真是让我烦恼,因为我知道我有一些完全错误的东西!
答案 0 :(得分:2)
当你创建DateTime
第二个参数是第一个参数的DateTimeZone
时,如果你想要改变DateTime
的时区,你需要在使用方法setTimezone
后进行。< / p>
class Time_model extends CI_model
{
public $time_zone;
public $tz;
public $dt;
public function __construct()
{
$this->time_zone = 'Pacific/Auckland';
$this->tz = new DateTimeZone($this->time_zone);
$this->dt = new DateTime('now', new DateTimeZone("UTC"));
$this->dt->setTimezone($this->tz);
}
/**
* dates
*/
public function getDate()
{
$this->dt->getTimezone(); // <--- shows that the timezone is auckland where it is the 02/10/2016
return $this->dt->format('Y-m-d'); // <--- yet returns the 01/10/2016!
}
}