Thỉnh thoảng, bạn sẽ cần liệt kê danh sách time zone có sẵn cho phép người dùng lựa chọn time zone tại quốc gia hay thành phố mà họ đang sinh sống. May mắn là PHP hỗ trợ hàm timezone_identifiers_list (PHP 5 >= 5.2.0) cho phép chúng ta tạo danh sách các time zone này một cách dễ dàng như sau :
<?php
/**
* Timezones list with GMT offset
*
* @return array
*/
function tz_list() {
$zones_array = array();
$timestamp = time();
foreach(timezone_identifiers_list() as $key => $zone) {
date_default_timezone_set($zone);
$zones_array[$key]['zone'] = $zone;
$zones_array[$key]['diff_from_GMT'] = 'UTC/GMT ' . date('P', $timestamp);
}
return $zones_array;
}
?>
Hàm bên trên sẽ trả về một mảng với tất cả time zone và GMT offset, và để tạo danh sách, các bạn dùng tiếp đoạn code sau :
<div style="margin-top: 20px;">
<select style="font-family: 'Courier New', Courier, monospace; width: 450px;">
<option value="0">Please, select timezone</option>
<?php foreach(tz_list() as $t) { ?>
<option value="<?php print $t['zone'] ?>">
<?php print $t['diff_from_GMT'] . ' - ' . $t['zone'] ?>
</option>
<?php } ?>
</select>
</div>
Mình hy vọng với đoạn code mà mình chia sẻ trong bài viết này, sẽ giúp các bạn có thêm một chức năng cho website hay blog của mình.