Làm việc với DateTime trong WordPress

Ngày đăng: 04 - 05 - 2022 Lượt xem: 74 lượt

Một năm trước, mình phát triển một plugin liên quan đến thời gian biểu. Và mình sớm nhận ra rằng có nhiều phương thức về thời gian trong PHP. Kết hợp với các hàm WordPress có sẵn, mình đã bị ngợp.

Làm việc với DateTime

Vì vậy, hôm nay mình sẽ chỉ cho bạn những cách tốt nhất để làm việc với đối tượng date time trong WordPress.

Định dạng DateTime

Bảng dưới đây là định dạng DateTime phổ biến. Danh sách đầy đủ các bạn có thể tham khảo trong tài liệu của PHP.

Year:

  • Y: 2022
  • y: 22

Month:

  • M: Jan – Dec
  • m: 01 – 12
  • F: January – December

Day:

  • D: Mon – Sun
  • d: 01 – 31

Hour:

  • H: 00 – 23
  • h: 01 – 12
  • A: AM hoặc PM

Minute:

  • i: 01 – 59

Second:

  • s: 01 – 59

Đối tượng DateTime

Ngày hiện tại

$current_date = current_datetime();
echo $current_date->format( 'd/m/Y' );

// nếu bạn muốn sử dụng định dạng theo cài đặt

echo $current_date->format( get_option('date_format') );

Theo ID bài viết

$post_date = get_post_datetime( $post_id );
echo $post_date->format( 'd/m/Y' );

Chuyển đổi từ một chuỗi (string)

$meta_date = '13/01/2020';
$datetime = DateTime::createFromFormat( 'd/m/Y', $meta_date );

echo $datetime->format( 'd M Y' ); // 13 Jan 2020

Ngày xuất bản của Bài viết và Bình luận được lưu trữ với định dạng Y-m-d H:i:s. Nếu chuỗi ở định dạng đó, bạn có thể sử dụng đoạn code dưới đây:

$post_date = '2020-01-16 12:00:00';
$datetime = new DateTime( $post_date );

echo $datetime->format( 'd M Y' ); // 16 Jan 2020

Khoảng cách giữa các DateTime

Nếu bạn muốn biết khoảng cách giữa 2 DateTime theo tháng, ngày, giờ thì bạn có thể tham khảo đoạn code dưới đây:

$datetime1 = DateTime::createFromFormat( 'd/m/Y H:i', '10/02/2019 10:00' );
$datetime2 = DateTime::createFromFormat( 'd/m/Y H:i', '10/02/2020 23:00' );

$diff = $datetime1->diff( $datetime2 );
$days_ago = $diff->days;
$months_ago = $diff->m + ($diff->y * 12);
$hours_ago = $diff->h + ($diff->days * 24);

echo "{$days_ago} days ago"; // 365 ngày trước
echo "{$hours_ago} hours ago"; // 8776 giờ trước
echo "{$months_ago} months ago"; // 12 tháng trước

Sửa đổi DateTime

Trong trường hợp bạn muốn thay đổi DateTime. Có thể là tăng thêm hoặc giảm đi bao nhiêu ngày, hoặc tháng cụ thể. Thì bạn có thể dùng đoạn code dưới đây:

$datetime = DateTime::createFromFormat( 'd/m/Y', '10/02/2020' );

$datetime->modify( '+1 day' );
echo $datetime->format( 'd M Y' ); // 11 Feb 2020

$datetime->modify( '+2 day +1 month' );
echo $datetime->format( 'd M Y' ); // 14 Mar 2020

$datetime->modify( '-10 day -2 month -1 year' );
echo $datetime->format( 'd M Y' ) ); // 04 Jan 2019

Lời kết

Mình hy vọng bài viết này sẽ giúp được các bạn. Đặc biệt là với những bạn đang làm việc với theme hoặc plugin liên quan đến thời gian trong WordPress.

Nếu bài viết này hữu ích và giúp tiết kiệm được thời gian của bạn, hãy giúp mình chia sẻ nó. Ngoài ra nếu bạn quan tâm đến các chủ đề tương tự như vậy, hãy đọc các bài viết Thủ thuật WordPress khác và follow Fanpage để không bỏ lỡ bài viết mới từ mình nhé.

5 2 votes
Đánh giá bài viết

guest
1 Bình luận
Bình chọn
Mới nhất Cũ nhất
Inline Feedbacks
View all comments
Bán Nhà Thủ Dầu Một

Cảm ơn admin
đúng lúc đang cần đến

Bài viết liên quan

Hướng dẫn custom Bảng tin trong admin WordPress

Hướng dẫn custom Bảng tin trong admin WordPress

11 - 05 - 2022

Bạn có nghĩ rằng bảng tin trong admin WordPress thật lộn xộn và có nhiều phần không cần thiết...

Cách đặt hình ảnh đại diện mặc định trong WordPress

Cách đặt hình ảnh đại diện mặc định trong WordPress

08 - 05 - 2022

Bạn có muốn đặt hình ảnh đại diện mặc định trong WordPress không? Nhiều theme sử dụng hình ảnh đại...

Hiển thị ngày đăng ký của người dùng vào trang tất cả người dùng

Hiển thị ngày đăng ký của người dùng vào trang tất cả người dùng

06 - 05 - 2022

Giả sử rằng có một cuộc tấn công spam vào trang web của bạn. Có gần 50 người dùng...

Tạo form tìm kiếm bằng shortcode trong WordPress

Tạo form tìm kiếm bằng shortcode trong WordPress

02 - 05 - 2022

Bạn muốn thêm form tìm kiếm vào bài viết, trang, hoặc sidebar của website? Thêm form tìm kiếm vào nội...

Thêm cột ảnh đại diện trong trang quản trị danh sách bài viết

Thêm cột ảnh đại diện trong trang quản trị danh sách bài viết

28 - 04 - 2022

Bạn có muốn hiển thị ảnh đại diện ra ngoài trang danh sách bài viết không? Hôm nay mình sẽ...

Làm thế nào để chuyển hướng URL trong WordPress?

Làm thế nào để chuyển hướng URL trong WordPress?

20 - 04 - 2022

Chuyển hướng URL, là một cách để làm cho một đường dẫn có thể truy cập được dưới nhiều...

1
0
Would love your thoughts, please comment.x