我正在使用一个名为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新手,无法理解为了让“推特时间”起作用,到底需要写些什么。谁能给我指一下路吗?
最合适的回答,由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\') ) );
});