0

我正在使用 cakePHP 时间格式将日期更改为用户时区。然后我想检查一下是不是今天。当我将 $currentDate 传递给 $this->Time->isToday 时,我什么也得不到,即使认为这是今天的日期。

如果我传入日期(“d/m/Y”);它工作正常。

我也试过 stringToTime 。

$currentDate = $this->Time->format(
                'd/m/Y',
                $message['Message']['created'],
                null,
                $userData['time_zone']
);

if($this->Time->isToday($currentDate)){
    echo "today";
};

这是我实施的修复。

if($this->Time->isToday($message['Message']['created'], $userData['time_zone'])){
    echo '<li class="conversation-divider"><span>Conversation started Toady</span></li>';
} else {
    echo '<li class="conversation-divider"><span>Conversation started at '.$messageDate.'</span></li>';
};
4

2 回答 2

2

根据 CakePHP 的书,您可以将时区传递给 'isToday()' 方法:

TimeHelper::isToday($dateString, $timezone = NULL)

所以 - 试试这个:

$today = $this->Time->isToday(
    $message['Message']['created'],
    $userData['time_zone']
);
于 2014-07-17T05:12:43.710 回答
0

您是否让时区助手知道您在 format() 中使用的时区?您至少需要设置一次 timezone($timezone) 才能知道它。

https://github.com/cakephp/cakephp/blob/master/lib/Cake/Utility/CakeTime.php#L272

于 2014-07-16T23:34:58.693 回答