这真的很奇怪。我有两个时间值。
第一次:
$t1 = 1311165885;
第二次(比第一次更大):
$t2 = 1312049530;
我要减去这样的时间:
$diff = $t2-$t1;
当我做echo $diff
时,这就出现了:
echo 'Time_diff: ' . $diff;
Time_diff: -1311163874
实际结果应为883645
。有什么问题?
提前致谢!
Craphunter
然后这是我的代码:
<?php
$current_time = DataConverter::makeDatetime();
foreach ($order as $list) {
echo '-----------'.'</br>';
$create_unix_time = DataConverter::makeTimestamp($list->getCreate());
$diff = $current_time-$create_unix_time;
if ($diff >= 864000) {
echo 'aus db: ' . $list->getErstellt() . '</br>';
echo $list->getId() . '</br>';
echo 'old';
}
else {
}
}
?>
答案 0 :(得分:3)
<?php
$t1 = 1311165885;
$t2 = 1312049530;
$diff = $t2-$t1;
echo 'Time 1: ' . date('Y-m-d H:i:s', $t1) . PHP_EOL;
echo 'Tim2 2: ' . date('Y-m-d H:i:s', $t2) . PHP_EOL;
echo 'Time diff: ' . $diff . PHP_EOL;
...打印出来:
Time 1: 2011-07-20 14:44:45
Tim2 2: 2011-07-30 20:12:10
Time diff: 883645
你说你得到的确看起来像一个普通的时间戳而不是差异:
echo date('Y-m-d H:i:s', 1311163874) . PHP_EOL;
...打印:
2011-07-20 14:11:14
您的代码中某处可能存在输入错误的变量名称。
答案 1 :(得分:0)
我忽略了DataConverter :: makeTimestamp方法的数据类型结果。也许这是一个错误的假设,假设结果是整数。也许。 但是,您可以强制数据类型为整数,并测试是否存在问题。
$current_time = intVal( DataConverter::makeDatetime() );
和
$create_unix_time = intVal( DataConverter::makeTimestamp( $list->getCreate() ) );