更改时间格式

时间:2015-06-25 19:45:28

标签: php wordpress

所以,我有以下php:

<?php echo get_post_meta($post->ID,'dfd_ModificationTimestamp',true); ?>

它输出日期如下:13/06/2015 11:02:18

我不知道如何将其更改为“3天前”或“2个月前”等。

有什么建议吗?

谢谢!

3 个答案:

答案 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');

来源:

http://timeago.yarp.com/

How to display a date as iso 8601 format with PHP