HIển thị thời gian như facebook là đẹp nè

Tính thời gian đăng bài viết bằng tiếng Việt trong WordPress

Tôi vừa có ý tưởng thay vì hiển thị thời gian một cách thô kệch, sao ta không dùng hàm để tính luôn cái thời gian là số ngày đã trôi qua cho nó trực quan ? Kiểu như Facebook ý, 2 phút trước, 1 tháng trước …

HIển thị thời gian như facebook là đẹp nè
HIển thị thời gian như facebook là đẹp nè

Vậy thì cần phải nã vài dòng code php rồi, lang thang trên mạng cóp nhặt được cái hàm này hay lắm, các bạn hãy cho vào file functions trong giao diện nhé:

 

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;
}

Và chúng ta có thể gọi ra bất kỳ chỗ nào trong single.php hoặc chỗ khác bằng cách gọi lệnh:

<?php sw_human_time_diff(); ?>

Chúc các bạn thành công nhé !

TÁC GIẢ:

Tôi là Jam, thâm niên 7 năm thiết kế website và làm SEO. Hãy theo dõi blog của tôi để nhận được nhiều chia sẻ thú vị xung quanh chủ đề công nghệ.

Có 10 bình luận !

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *