Hàm tính thời gian đăng bài viết

Trong khi viết giao diện cho WordPress, bạn thường sử dụng các hàm để hiển thị ngày đăng bài viết cũng như thời gian gửi bình luận. Nếu bạn mong muốn hiển thị thời gian theo kiểu Facebook thì bạn có thể sử dụng hàm bên dưới.

[php]
function sw_human_time_diff() {
global $post;
$date = get_post_time(‘G’, true, $post);
$langs = array(‘giây’, ‘phút’, ‘giờ’, ‘ngày’, ‘tuần’, ‘tháng’, ‘năm’);
$chunks = array(
array( 60 * 60 * 24 * 365 , __( $langs[6], ‘swhtd’ ), __( $langs[6], ‘swhtd’ ) ),
array( 60 * 60 * 24 * 30 , __( $langs[5], ‘swhtd’ ), __( $langs[5], ‘swhtd’ ) ),
array( 60 * 60 * 24 * 7, __( $langs[4], ‘swhtd’ ), __( $langs[4], ‘swhtd’ ) ),
array( 60 * 60 * 24 , __( $langs[3], ‘swhtd’ ), __( $langs[3], ‘swhtd’ ) ),
array( 60 * 60 , __( $langs[2], ‘swhtd’ ), __( $langs[2], ‘swhtd’ ) ),
array( 60 , __( $langs[1], ‘swhtd’ ), __( $langs[1], ‘swhtd’ ) ),
array( 1, __( $langs[0], ‘swhtd’ ), __( $langs[0], ‘swhtd’ ) )
);
if ( !is_numeric( $date ) ) {
$time_chunks = explode( ‘:’, str_replace( ‘ ‘, ‘:’, $date ) );
$date_chunks = explode( ‘-‘, str_replace( ‘ ‘, ‘-‘, $date ) );
$date = gmmktime( (int)$time_chunks[1], (int)$time_chunks[2], (int)$time_chunks[3], (int)$date_chunks[1], (int)$date_chunks[2], (int)$date_chunks[0] );
}
$current_time = current_time( ‘mysql’, $gmt );
$newer_date = ( !$newer_date ) ? strtotime( $current_time ) : $newer_date;
$since = $newer_date – $date;
if ( 0 > $since )
return __( ‘Gần đây’, ‘swhtd’ );
for ( $i = 0, $j = count($chunks); $i < $j; $i++) {
$seconds = $chunks[$i][0];
if ( ( $count = floor($since / $seconds) ) != 0 )
break;
}
$output = ( 1 == $count ) ? ‘1 ‘. $chunks[$i][1] : $count . ‘ ‘ . $chunks[$i][2];
if ( !(int)trim($output) ){
$output = ‘0 ‘ . __( $langs[0], ‘swhtd’ );
}
$output .= __(‘ trước’, ‘swhtd’);
return $output;
}
[/php]

Đoạn code trên sẽ giúp bạn hiển thị thời gian theo kiểu: 2 giây trước, 2 ngày trước hoặc 1 năm trước. Bạn chỉ cần thay thế các hàm hiển thị thời gian của WordPress trong giao diện thành:

<?php sw_human_time_diff(); ?>

Leave a Reply

4 Comments on "Hàm tính thời gian đăng bài viết"

Notify of
avatar
Sort by:   newest | oldest | most voted
Minh Nhựt
Guest

Giao diện cũ của Minh Nhựt cũng có dùng chức năng hiện thời gian đăng bài dạng “… phút trước”. Thực ra thì trong WordPress đã có sẵn hàm tương tự rồi đó bác Sáu!

thuan
Guest

Em lam theo cách cua anh khi vua post bai thi no tính được 7 giờ trước.em muốn tinh theo gio vietnam thi lam cách nào

wpDiscuz