2012-01-01 92 views
2

我想显示“今天发布”如果发布是今天发布,并且我知道如何执行该操作,但我希望显示默认日期和时间格式截至上午12:01,显然是因为它不再发布“今天”,有没有办法我可以做到这一点?谢谢您的帮助。显示相对时间午夜后更改为默认日期


谢谢,我会尽力,这是我的。

if($params['time'] > (time() - (60*60*24))){ 

$old_time = $params['time']; 

$hm = date("g:ia", $old_time); 

$today = elgg_echo('friendly_time_today', array($hm)); 

return $today; 

    return $today; 

    } else if($params['time'] > (time() - (60*60*48))){ 

$old_time = $params['time']; 

$hm = date("g:ia", $old_time); 

$yesturday = elgg_echo('friendly_time_yesturday', array($hm)); 

return $yesturday; 

    return $yesturday; } 
+4

显示您已经尝试过的内容或要添加此功能的位置的邮编... – 2012-01-01 18:30:07

回答

0

你的意思是这样的:

<?php 
$sSaved = "11:08am 01.01.2012"; // comes from date("H:ia d.m.Y"); 
$aSaved = explode(" ", $sSaved); 
if ($aSaved[1] != date("d.m.Y")) { 
    echo $sSaved; 
} else { 
    echo "today"; 
} 
0

如果我正确理解您的文章,这可能是有意义的莫名其妙:

# example function 
function stylePostDateExample (DateTime $postDate) { 
    # get current date 
    $currDate = date_create(date('Y-m-d H:i:s')); 
    # grab the interval between the post date and current date 
    $intervalObj = date_diff($postDate, $currDate); 

    # simple output start 
    $stringOut = "Posted "; 

    # interpret difference 
    if ($intervalObj->format('%d') < 1 && $intervalObj->format('%y%m') == 0){ 
     # still within the day 
     $stringOut .= "today at " . $intervalObj->format('%H:%I'); 
    } else { 
     # the post date day has passed 
     $stringOut .= "on " . date_format($postDate, 'Y-m-d H:i:s'); 
    } 
    return $stringOut; 
} 

# test: any previous day 
$postDate = date_create('2012-01-01 00:00:00'); 
echo stylePostDateExample ($postDate); 

# results 
# ----------------------------------------- 
# Posted on <date value here> 

# test: today 
$postDate = date_create(date('Y-m-d')); 
echo stylePostDateExample ($postDate); 

# results 
# ----------------------------------------- 
# Posted today at <time value here> 

的功能要求,我想你datetime值从数据库中获取(针对帖子创建/发布的日期),并输出一个字符串。

如果我错过了这一点,请让我知道。