Người dùng có thực sự ngồi trên một trang trong một thời gian đủ dài, rằng những ngày này cần được cập nhật qua javascript? Hầu hết trong số họ sẽ nhấp vào một cái gì đó và cuối cùng tải lại toàn bộ trang tại một số điểm. Vì vậy, có lẽ, một giải pháp php là một lựa chọn quá?
Bạn có thể đạt được giải pháp php bằng cách sử dụng mô đun Custom Formatters .
Nếu bạn tạo một trình định dạng tùy chỉnh kiểu php mới, với đoạn mã sau (đảm bảo đó là kiểu dấu dữ liệu):
$element = array();
foreach ($variables['#items'] as $delta => $item) {
$unixstamp = $item['value'];
$time_since = mktime() - $unixstamp;
if ($time_since < 86400) {
$date_str = format_interval($time_since);
}
else {
$date_str = format_date($unixstamp, 'custom', 'jS F Y');
}
$element[$delta] = array(
'#type' => 'markup',
'#markup' => $date_str,
);
}
return $element;
Khi tạo trình định dạng, hãy đảm bảo bạn chọn loại trường 'dấu thời gian'. Khi trình định dạng được tạo, sau đó trong tab hiển thị quản lý loại nội dung của bạn, hãy đặt trường để sử dụng trình định dạng này.
Nếu bạn không lưu trữ ngày của mình dưới dạng một trường riêng biệt, bạn có thể áp dụng trình định dạng tùy chỉnh cho thời gian sửa đổi nút, bằng cách cài đặt mô-đun Display Suite .
Nếu bạn không muốn sử dụng bất kỳ mô-đun nào trong số này nhưng muốn hack một số php vào chủ đề của bạn hoặc một cái gì đó, bạn vẫn có thể sử dụng cùng một logic ở trên với các hàm format_interval và format_date.
Hy vọng rằng có thể giúp đỡ.