我在Codeigniter中遇到与现在时间有关的问题。 我在codeigniter中使用 timespan 函数。我必须得到当前时间,现在它返回错误的当前时间。我在电脑上的约会(截至目前)是2013-07-04 3:21 PM,但是当我这样做时:
$now = time();
$human = unix_to_human($now);
echo $human;
输出结果是2013-07-05 12:20 AM。那是为什么?
答案 0 :(得分:0)
它返回Web服务器时间,而不是您的pc时间。尝试将时区设置为您的位置。
答案 1 :(得分:0)
将此代码放在index.php(引导程序文件)的顶部。
if( ! ini_get('date.timezone') )
{
date_default_timezone_set('Asia/Dhaka');
}
而不是'Asia / Dhaka'使用您自己的时区。应该做的工作。
答案 2 :(得分:0)
我已经通过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';.