2013-05-06 67 views
0

我有下面的代码片段:镆铘倒计时

<?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)); 

$日期越来越从timerData它的值,它是一个模板变量,因而深受用户可调。我已经设置了输入和输出日期,但结果我得到一个计时器,从-15000 +天和小时数倒计时。这是如何发生的?它没有电视就可以正常工作,但如果不深入代码就不可管理。任何建议/解决方案,将不胜感激。干杯马可

电视返回的实际输入:2014-07-10 00:00:00 而作为脚本部分返回:-15832天和-13小时(天和小时手动编写看作为实际值是$天,$小时从PHP脚本)

+0

在哪种格式存储'timerData'?作为UNIX时间戳还是文字日期时间? – feeela 2013-05-06 13:06:54

+0

生病编辑我的问题 – 2013-05-06 13:20:11

回答

0

TV输入就转换为时间戳:

$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); 
+1

为什么不使用'$ date = strtotime($ date)'? – 2013-05-13 14:02:45