我目前正在开发一个使用PHP从SQL数据库中检索数据的Android应用程序。每组数据都有不同的时间戳。我数据库中时间戳的格式是(yyyy-mm-dd h:m:s)。现在我想转换我的时间戳,以便Android用户将看到时间戳(X秒前,X分钟前或X天前)。我试过我的PHP代码,但结果我得到的每个数据集的时间戳是(1天前)。每组数据显示1天前。谁能帮我?感谢
Product.php
$str = 'a:4:{i:0;s:1:"5";i:1;s:1:"6";i:2;s:1:"7";i:3;s:1:"8";}';
preg_match_all( '/"(\d+)"/', $str, $matches );
print_r($matches[1]);
答案 0 :(得分:1)
if ($timeType == "x") {
if ($timeCalc == 60) {
$timeType = "m";
}
if ($timeCalc == (60*60)) {
$timeType = "h";
}
if ($timeCalc == (60*60*24)) {
$timeType = "d";
}
}
你这里有问题, 你在if:
中影响$ timeCalc{{1}}
例如,我认为你只需要忘记==。
更正后的代码:
{{1}}
答案 1 :(得分:1)
相同的简化脚本将是
function xTimeAgo ($oldTime, $newTime) {
$timeCalc = strtotime($newTime) – strtotime($oldTime);
if ($timeCalc > (60*60*24)) {$timeCalc = round($timeCalc/60/60/24) . ” days ago”;}
else if ($timeCalc > (60*60)) {$timeCalc = round($timeCalc/60/60) . ” hours ago”;}
else if ($timeCalc > 60) {$timeCalc = round($timeCalc/60) . ” minutes ago”;}
else if ($timeCalc > 0) {$timeCalc .= ” seconds ago”;}
return $timeCalc;
}
试试这个。希望这会对你有所帮助。
有一个很好的例子答案 2 :(得分:1)
由于这段代码,代码总是返回一天:
if ($timeType == "x") {
if ($timeCalc = 60) {
$timeType = "m";
}
if ($timeCalc = (60*60)) {
$timeType = "h";
}
if ($timeCalc = (60*60*24)) {
$timeType = "d";
}
}
($ timeCalc = 60)不检查$ timeCalc是否等于60,这也是错误的,它应该检查它是否大于60,它将$ timecalc设置为60,这也被评估为真。 / p>
作为一个结果,每次运行该函数时,$ timeCalc首先设置为60,然后是60 * 60,最后设置为60 * 60 * 24。与$ timeType类似,它设置为“m”,然后设置为“h”,最后设置为“d”,这样,如果检查代码,就会看到为什么它总是会返回一天。
尝试设置以下if子句:
if ($timeType == "x") {
if ($timeCalc > 60) {
$timeType = "m";
}
if ($timeCalc > (60*60)) {
$timeType = "h";
}
if ($timeCalc > (60*60*24)) {
$timeType = "d";
}
}