我在代码段中有以下代码:
<?php
$resource = $modx->getObject('modResource', $id);
if(!$resource) return;
$date = $resource->getTVValue('timerData');
$remaining = $date - time();
$days_remaining = floor($remaining / 86400);
$hours_remaining = floor(($remaining % 86400) / 3600);
return $modx->getChunk($tpl, array('days' => $days_remaining, 'hours' => $hours_remaining));
$ date从timerData获取其值,该值是模板变量,因此可由用户调整。我已将输入和输出都设置为日期,但结果我得到一个计时器,从-15000+天和小时开始倒计时。这是怎么发生的?它在没有电视的情况下工作正常,但如果没有潜入代码则无法管理。任何建议/解决方案将不胜感激。干杯马可
电视回报的实际输入:2014-07-10 00:00:00 当脚本部分返回时:-15832天和-13小时(手动写入日期和小时,因为实际值是$天和PHP脚本的$小时)
答案 0 :(得分:0)
只需将电视输入转换为时间戳:
$date = $resource->getTVValue('timerData');
list ($d, $m, $Y, $H, $M, $S) = sscanf($date, "%2d-%2d-%4d %2d:%2d:%2d");
$date = mktime($H, $M, $S, $m, $d, $Y);