我现在在 Codeigniter 中的时间有问题。我在codeigniter中使用时间跨度函数。我必须获取当前时间,它现在返回错误的当前时间。我在我的电脑上的日期(截至目前)是 2013-07-04 3:21 PM,但是当我这样做时:
$now = time();
$human = unix_to_human($now);
echo $human;
输出为 2013-07-05 12:20 AM。这是为什么?
我现在在 Codeigniter 中的时间有问题。我在codeigniter中使用时间跨度函数。我必须获取当前时间,它现在返回错误的当前时间。我在我的电脑上的日期(截至目前)是 2013-07-04 3:21 PM,但是当我这样做时:
$now = time();
$human = unix_to_human($now);
echo $human;
输出为 2013-07-05 12:20 AM。这是为什么?
它返回网络服务器时间,而不是您的电脑时间。尝试将时区设置为您所在的位置。
将此代码放在 index.php(引导文件)的顶部。
if( ! ini_get('date.timezone') )
{
date_default_timezone_set('Asia/Dhaka');
}
而不是“亚洲/达卡”使用您自己的时区。应该做的工作。
我已经在 CodeIgniter 中使用这样的 Helper 类解决了这个问题:
<?php
namespace App\Helpers;
use CodeIgniter\I18n\Time;
class DateHelper {
public static function getTime($dateString = 'now'){
$time = new Time($dateString);
if(!$time->getDst()){
$time = $time->subHours(1);
}
return $time;
}
public static function getNowString(){
return static::getTime()->format('Y-m-d H:i:s');
}
}
我基本上使用这个功能:
/**
* ( function from CodeIgniter\I18n\Time )
* Are we in daylight savings time currently?
*
* @return boolean
*/
public function getDst(): bool
要检查我们当前是否处于夏令时,如果是,我减去 1 小时。这对我有用,我的时区是默认使用的 Europe/Lisbon,因为我通过更改以下变量在 app/config/App.php 中对其进行了配置:
public $appTimezone = 'Europe/Lisbon';.