所以,我有以下php:
<?php echo get_post_meta($post->ID,'dfd_ModificationTimestamp',true); ?>
它输出日期如下:13/06/2015 11:02:18
我不知道如何将其更改为“3天前”或“2个月前”等。
有什么建议吗?
谢谢!
答案 0 :(得分:2)
我认为您正在寻找wordpress函数human_time_diff
示例:
//Get your date
$date = get_post_meta($post->ID,'dfd_ModificationTimestamp',true);
//Convert it to a unix time stamp
$timestamp = strtotime($date);
//Print a nice string showing how long ago that was
echo human_time_diff( $timestamp, current_time('timestamp') ) . ' ago';
答案 1 :(得分:1)
使用此:
$dateString = get_post_meta($post->ID,'dfd_ModificationTimestamp',true);
/* @var \DateTime $date */
$date = DateTime::createFromFormat('d/m/Y H:i:s', $dateString);
现在$ date是DateTime对象。您可以根据需要进行修改。
例如,您需要3天前从您的日期值(13/06/2015 11:02:18)
$date->modify('-3 days'); // $date becomes 10/06/2015 11:02:18
或者如果您需要2个月前的日期值(13/06/2015 11:02:18)
$date->modify('-2 months'); // $date becomes 13/04/2015 11:02:18
要在修改后打印$ date值,请使用:
echo $date->format('d/m/Y H:i:s');
有关更多自定义信息,请参阅http://php.net/manual/en/class.datetime.php。
答案 2 :(得分:1)
我知道你标记了这个PHP,但你可以使用timeago插件使用javascript来完成这个。
<abbr class="timeago" title="2008-07-17T09:24:17Z">July 17, 2008</abbr>
转换为
<abbr class="timeago" title="July 17, 2008">7 years ago</abbr>
你需要格式化ISO_8601格式的时间,这样的事情就可以了:
echo (new DateTime('17 Oct 2008'))->format('c');
来源: