时差php/mysql需要有条件地格式化输出(需要4个小亮点)
我正在尝试使用php和mysql作为数据库,从字段类型datetime到“立即”的日期/时间差异 此代码工作正常,根据需要返回输出时差php/mysql需要有条件地格式化输出(需要4个小亮点),php,mysql,Php,Mysql,我正在尝试使用php和mysql作为数据库,从字段类型datetime到“立即”的日期/时间差异 此代码工作正常,根据需要返回输出 $datetime1 = new DateTime('mydate1'); $datetime2 = new DateTime(); $interval = $datetime1->diff($datetime2); $elapsed = $interval->format('%d days %h hours %i minutes'); 到目前为止还可
$datetime1 = new DateTime('mydate1');
$datetime2 = new DateTime();
$interval = $datetime1->diff($datetime2);
$elapsed = $interval->format('%d days %h hours %i minutes');
到目前为止还可以,并没有问题,因为这个函数是针对PHP5.3的,我在服务器上有它
我需要的其实是4件小事
1) 如何消除几天的需要?
我想要(25小时10分钟)而不是(1天1小时10分钟)
2) 例如,如果值超过5小时,我如何将$appeased
设置为粗体或彩色!?简单如果逻辑不起作用,因为输出实际上不是预定义值
3) 如果天数或小时数为0,则要删除它们!
-例如,如果显示(0天10小时40分钟),则无需显示(0天),应显示(10小时40分钟)即可
-另一个例子:0天0小时45分钟,然后只显示“45分钟”,不需要天和小时
4) 如果输出总时间少于5分钟(0天0小时1-5分钟),那么想让它像“一段时间前”那样显示,而不需要任何天、小时或分钟。。。然后6分钟后。。像“6分钟”一样
很快就有了facebook
好的,我搜索的是不同的解决方法组合,但从未奏效,因为您知道这个时间间隔适用于PHP5.3,而且似乎还没有被广泛使用
对于这个长问题的一个或多个部分的任何提示,我们将不胜感激
M、 德里克试图回答你所有的问题。所以请阅读评论,因为我没有为问题写数字。对不起
$datetime1 = new DateTime('mydate1');
$datetime2 = new DateTime();
$minutes = round(abs($datetime1 - $datetime2) / 60,2); //to calculate total time in MINUTES
if($minutes < 5) // for awhile ago problem.
{
return "awhile ago";
}
elseif($minutes > 6 && < 60)
{
return $minutes." minutes ago"; //for 6 minutes and after.
}
elseif($minutes>60) // for the hours..
{
$hours = floor($final_time_saving / 60);
$minutes = $final_time_saving % 60;
$string = $hours. " hours and" . $minutes . " minutes ago.";
if($hours>5) //for bolding characters after
{
return "<b>".$hours." hours and".$minutes." minutes ago.</b>"; //for bolding character
}
else
return $hours." hours and".$minutes." minutes ago.";
}
$datetime1=newdatetime('mydate1');
$datetime2=新的DateTime();
$minutes=round(绝对值($datetime1-$datetime2)/60,2)//以分钟为单位计算总时间的步骤
if($minutes<5)//刚才的问题。
{
返回“一段时间以前”;
}
其他($minutes>6&&<60)
{
return$minutes.“分钟前”;//持续6分钟及之后。
}
elseif($minutes>60)//用于小时。。
{
$hours=地板($final\u time\u saving/60);
$minutes=$final\u time\u节省%60;
$string=$hours.“$hours.”和“$minutes.“$minutes..”分钟前;
if($hours>5)//用于在
{
返回“$hours.”小时和“$minutes.”分钟前。“;//用于加粗字符
}
其他的
返回$hours.“小时和”$minutes.“分钟前”;
}
希望这有帮助。1)和3)相互矛盾。没问题,想知道如何做到这一点,它将在两个不同的地方使用!只是想看看哪一个更好!?你到底需要什么?如果你写下你的目标,可能会有一种不同的更好的方法。itachi,见下面Gokigoooks先生的答案,它有必要,他几乎涵盖了所有内容,将调整代码以获得我的脚本所需的确切内容完美,显然回答了我的大部分担忧,谢谢你能给我解释一下吗?我无法通过这种方式获得最终结果变量:(抱歉,请看一看并再次建议您好,我的datetime字段是这样的“2012-11-16 09:08:45”,但我一直收到这样的错误:“类datetime的对象无法转换为int”在何处转换?具体转换方式如何?我读了很多书,读了很多树,但还没有任何结果:(嘿,朋友,尝试在日期中添加GMT。尝试一种
datetime1=strottime(“mydate1”);
方法。使用第二种方法,然后它以秒为单位返回整数。因此$minutes=round(abs($datetime1-$datetime2)/60,2);
请尝试