我无法解释这一点。我有以下内容:
$time += $res['timezone']; (The array equates to -5*3600 (EST))
return gmstrftime('%c',$time);
当我回复$ res ['timezone']时,我得到“-5 * 3600”,这是正确的。当我将数组值放在时间变量的前面时,我得到的时间不正确。如果我注释掉数组值并将其替换为-5 * 3600,我会得到正确的结果。为什么?
答案 0 :(得分:1)
因为字符串“-5 * 3600”和表达式-5 * 3600不是一回事。您可以尝试将eval
放在数组值周围,如下所示:
$time += eval($res['timezone']); //(The array equates to -5*3600 (EST))
return gmstrftime('%c',$time);
请注意,这是一个非常糟糕的主意,因为它既缓慢又不安全。如果要在数组中存储-5 * 3600,则计算该值并将结果存储在数组中:
$res['timezone'] = -5*3600;