如何使用此筛选器将日期格式的输出更改为“Twitter时间”?

时间:2014-03-22 作者:Desi

我正在使用一个名为Latest Tweet Widget 显示最新推文。推特日期按月份和日期显示(3月22日)。然而,我希望它出现在“推特时间”中,意思是“3天前,1小时前,等等”。

我在WordPress论坛上询问了插件的开发人员,他说我需要“使用latest_tweets_render_date 筛选以执行我自己的相对日期表示。“”

此处的“自定义HTML”部分下有问题的过滤器(下面也引用):https://wordpress.org/plugins/latest-tweets-widget/other_notes/#Theming

add_filter(\'latest_tweets_render_date\', function( $created_at ){
    $date = DateTime::createFromFormat(\'D M d H:i:s O Y\', $created_at );
    return $date->format(\'d M h:ia\'); }, 10 , 1 );
然而,我是PHP新手,无法理解为了让“推特时间”起作用,到底需要写些什么。谁能给我指一下路吗?

1 个回复
最合适的回答,由SO网友:gmazzap 整理而成

WordPress有一个核心功能human_time_diff 这就是你想要的,将其与你提供的过滤器结合使用,你会得到如下结果:

add_filter(\'latest_tweets_render_date\', function( $created_at ){
    $date = DateTime::createFromFormat(\'D M d H:i:s O Y\', $created_at ); 
    return sprintf( \'%s \' . __( \'ago\' ), human_time_diff( $date->format(\'U\') ) );
});

结束