cách dùng Date và Timezone trong AWS PHP SDK

0 k thích

Mình dùng Amazon PHP SDK và nhận được DateTime dưới dạng như sau :

2013-04-23T13:18:00Z

Có vẻ như nó đã được convert về timezone của mình rồi (Asia/Ho Chi Minh) vì không thấy có chỗ nào nói về timezone. Trang wiki của ISO 8601 cũng nói rằng

If no UTC relation information is given with a time representation,
the time is assumed to be in local time.

Nhưng khi mình convert như sau

<?php

date_default_timezone_set('Asia/Ho Chi Minh');
$strDate = '2013-04-23T13:18:00Z';

echo date('Y-m-d H:i:s', strtotime($strDate));

?>

thì bị báo lỗi

Each parameter of this function uses the default time zone unless a
time zone is specified in that parameter.

vậy tại sao strtotime lại convert về timezone của mình nếu như nó đang ở timezone đó ?

avatar đã hỏi ngày 15 tháng 3 bởi quangtung (520 điểm)  

1 Câu trả lời

0 k thích
 
Hay nhất

Chữ Z nghĩa là UTC rồi, nên nếu bạn muốn dùng thì phải chuyển về timezone của mình trước đã :

<?php

$date = new DateTime('2013-04-23T13:18:00Z'); // Z = UTC
echo $date->format('H') . PHP_EOL;
//> 13
$date->setTimezone(new DateTimeZone('Asia/Ho Chi Minh')); // +0700
echo $date->format('H') . PHP_EOL;
//> 20
avatar trả lời ngày 16 tháng 3 bởi truonglehung279 (690 điểm)  
đã được chọn ngày 16 tháng 3 bởi admin
...