Как я могу отформатировать временные метки с помощью встроенного символа `T`?

StackOverflow https://stackoverflow.com/questions/2258041

Вопрос

Мне нужно отформатировать временную метку в формате ISO 8601 (например 2001-10-26T21:32:52).Когда я использую date() функция в PHP, она заменяет T с часовым поясом (как и положено делать).

Команда, которую я использую, это:

$time = date("y-m-dTH:i:s", time());

Это производит: 10-02-13EST10:21:03

Как мне заставить его вставить фактическое T и не заменять на EST?

Это было полезно?

Решение

Ваш формат должен быть :"с"

$time = date("c", time());

От Руководство по PHP:

Format Descriptions                        Example
c      ISO 8601 date (added in PHP 5)   2004-02-12T15:19:21+00:00

Другие советы

Если вам нужно вставить символ, который не следует интерпретировать, поставьте перед ним обратную косую черту:

$time = date("y-m-d\TH:i:s", time());

Вы могли бы отформатировать части даты и времени отдельно, а затем объединить эти две части с "T":

<?php
 $time = time(); 
 $time = date( "y-m-d",$time )."T".date( "H:i:s", $time );
?>

DATE_ATOM предусмотрено для этого формата:

$theStart_date = date(DATE_ATOM, strtotime($start_date));

Выходной сигнал:

2013-04-10T09:10:30-04:00
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top