Hướng dẫn dùng datetime isoformat trong PHP

Xem xét Bài viết trên Wikipedia về ISO_8601 , Chênh lệch UTC có thể được định nghĩa là Định nghĩa Giờ: Phút hay như Định nghĩa GiờMinutes.

Nội dung chính

  • Cách chuyển đổi từ ISO 8601 sang unixtimestamp:
  • Cách chuyển đổi từ unixtimestamp sang ISO 8601 (máy chủ múi giờ):
  • Cách chuyển đổi từ unixtimestamp sang ISO 8601 (GMT):
  • Cách chuyển đổi từ unixtimestamp sang ISO 8601 (múi giờ tùy chỉnh):
  • Hướng đối tượng
  • Thủ tục
  • Cách chuyển đổi từ ISO 8601 sang unixtimestamp:
  • Cách chuyển đổi từ unixtimestamp sang ISO 8601 (máy chủ múi giờ):
  • Cách chuyển đổi từ unixtimestamp sang ISO 8601 (GMT):
  • Cách chuyển đổi từ unixtimestamp sang ISO 8601 (múi giờ tùy chỉnh):
  • Đăng nhập để trả lời câu hỏi
  • Có thể bạn quan tâm

Z là bộ chỉ định vùng cho độ lệch UTC bằng không. Do đó, "09:30 UTC" được biểu thị là "09: 30Z" hoặc "0930Z". "14:45:15 UTC" sẽ là "14: 45: 15Z" hoặc "144515Z".

Phương thức ngày trong PHP xác định tham số Z là

Độ lệch múi giờ Z tính bằng giây. Phần bù cho các múi giờ ở phía tây UTC luôn âm và đối với các múi giờ phía đông UTC luôn là số dương.

Vì vậy, giả sử độ lệch được đề cập trong bài viết wikipedia là tính bằng giây, bạn có thể tạo ISO 8601ngày sử dụng của riêng mình . Ví dụ được đưa ra cho ngày / giờ máy chủ hiện tại:

date('Y-m-d\TH:i:s.Z\Z', time());

Ngoài ra, như đã đề cập trong nhận xét của @AndrewIsOffline, kể từ PHP5 , việc sử dụng 'c' cũng sẽ cung cấp cho bạn Ngày ISO 8601:

date('c', time());

11 hữu ích 1 bình luận chia sẻ

Nội dung chính

  • Cách chuyển đổi từ ISO 8601 sang unixtimestamp:
  • Cách chuyển đổi từ unixtimestamp sang ISO 8601 (máy chủ múi giờ):
  • Cách chuyển đổi từ unixtimestamp sang ISO 8601 (GMT):
  • Cách chuyển đổi từ unixtimestamp sang ISO 8601 (múi giờ tùy chỉnh):

Cách chuyển đổi từ ISO 8601 sang unixtimestamp:

strtotime('2012-01-18T11:45:00+01:00');
// Output : 1326883500

Cách chuyển đổi từ unixtimestamp sang ISO 8601 (máy chủ múi giờ):

date_format(date_timestamp_set(new DateTime(), 1326883500), 'c');
// Output : 2012-01-18T11:45:00+01:00

Cách chuyển đổi từ unixtimestamp sang ISO 8601 (GMT):

date_format(date_create('@'. 1326883500), 'c') . "\n";
// Output : 2012-01-18T10:45:00+00:00

Cách chuyển đổi từ unixtimestamp sang ISO 8601 (múi giờ tùy chỉnh):

date_format(date_timestamp_set(new DateTime(), 1326883500)->setTimezone(new DateTimeZone('America/New_York')), 'c');
// Output : 2012-01-18T05:45:00-05:00

answer

191

Hướng dẫn dùng datetime isoformat trong PHP

Hướng đối tượng

Đây là cách được đề nghị.

$datetime = new DateTime('2010-12-30 23:21:46');

echo $datetime->format(DateTime::ATOM); // Updated ISO8601

Thủ tục

Đối với các phiên bản cũ hơn của PHP hoặc nếu bạn cảm thấy thoải mái hơn với mã thủ tục.

echo date(DATE_ISO8601, strtotime('2010-12-30 23:21:46'));

191 hữu ích 5 bình luận chia sẻ

answer

34

Sau PHP 5, bạn có thể sử dụng điều này: echo date("c");mẫu datetime định dạng ISO 8601.

http://ideone.com/nD7piL

Lưu ý cho ý kiến:

Về điều này , cả hai biểu thức này đều hợp lệ cho múi giờ, cho định dạng cơ bản : ±[hh]:[mm], ±[hh][mm], or ±[hh].

Nhưng lưu ý rằng, + 0X: 00 là chính xác và + 0X00 không chính xác cho việc sử dụng mở rộng. Vì vậy, tốt hơn là sử dụng date("c"). Một cuộc thảo luận tương tự ở đây .

34 hữu ích 5 bình luận chia sẻ

answer

2

Cách chuyển đổi từ ISO 8601 sang unixtimestamp:

strtotime('2012-01-18T11:45:00+01:00');
// Output : 1326883500

Cách chuyển đổi từ unixtimestamp sang ISO 8601 (máy chủ múi giờ):

date_format(date_timestamp_set(new DateTime(), 1326883500), 'c');
// Output : 2012-01-18T11:45:00+01:00

Cách chuyển đổi từ unixtimestamp sang ISO 8601 (GMT):

date_format(date_create('@'. 1326883500), 'c') . "\n";
// Output : 2012-01-18T10:45:00+00:00

Cách chuyển đổi từ unixtimestamp sang ISO 8601 (múi giờ tùy chỉnh):

date_format(date_timestamp_set(new DateTime(), 1326883500)->setTimezone(new DateTimeZone('America/New_York')), 'c');
// Output : 2012-01-18T05:45:00-05:00

2 hữu ích 0 bình luận chia sẻ

answer

0

Nếu bạn thử đặt một giá trị trong datetime-local

date("Y-m-d\TH:i",strtotime('2010-12-30 23:21:46'));

//output : 2010-12-30T23:21

0 hữu ích 1 bình luận chia sẻ

answer

4

date("c");

//output : 2018-02-28T13:12:44+01:00

4 hữu ích 2 bình luận chia sẻ

Đăng nhập để trả lời câu hỏi

Có thể bạn quan tâm