这个“约会”功能帮助不大

时间:2010-02-13 12:21:39

标签: php sql mysql html datetime

我有这个从mysql db中选择一个日期,并将它与瑞典语的月份名称数组进行比较。

$monthnames = array("","Januari","Februari","Mars","April","Maj","Juni","Juli","Augusti","September","Oktober","November","December");

$postdate = $monthnames[date("n", strtotime( $row['modify_date'] ))];
//Outputs something like '12 Februari'

这是问题,我想检查$ postdate变量并根据日期将其更改为“今天”,“昨天”和“前天”,我该怎么办?

由于

2 个答案:

答案 0 :(得分:0)

如果您使用时间戳在数据库中存储日期:

您可以预设间隔,例如:

$day = mktime(0,0,0,2,1,2001)-mktime(0,0,0,1,1,2001);

您可以将现在的时间 - 数据库中的时间戳/日期与这些时间间隔进行比较。

例如,假设$ dbTime包含使用mysql获取的时间戳:

$time = time() - $dbTime;
if($time<$day)
   echo 'posted today';
elseif($time<($day*2))
   echo 'posted yesterday';

等等。

然后,如果它们大于预定义的间隔,您可以使用PHP的日期函数来回显小时,分钟,秒或日期。

答案 1 :(得分:0)

PHP中没有这样的内置函数。你需要做计算,在这种情况下mktime函数可以成为你的朋友。

if (date of $timenow == date of $timepost) { today; }
else if (date of $timenow - 24h == date of $timepost) { yesterday; }
etc.

请注意夏季/冬季时间变化,时区等。请尝试使用mktime()

http://php.net/date