2013-05-13 9 views
14

Moja data format jest coś takiegoprzekonwertować do formatu tz

2013-05-07 18:56:57 (yyyy-MM-dd hh:mm:ss) 

chcę wyjście w następujący sposób.

2013-05-07T06:17:55.827Z 

Czy istnieje prosty sposób niż używanie dużych funkcji?

Odpowiedz

8

To powinno dać właściwą ISO8601 datę/czas w Z (Ulu) Strefa czasowa:

str_replace('+00:00', 'Z', gmdate('c')) 

zrobić konwersję date:

str_replace('+00:00', 'Z', gmdate('c', strtotime('2013-05-07 18:56:57'))) 

mieć dodatkowy .000 (który jest bezużyteczny imho):

str_replace('+00:00', '.000Z', gmdate('c', strtotime('2013-05-07 18:56:57'))) 
+0

Gdzie powinienem podać moją datę tutaj? – sandy

+0

@sandy Jest to drugi argument funkcji 'gmdate()'. –

+0

próbowałem go nie działa .. Próbowałem jak ten str_replace ("+ 00:00", "Z", gmdate ("c", "2013-05-07 18:56:57")); – sandy

19

Spróbuj tego:

date("Y-m-d\TH:i:s.000\Z", strtotime("2013-05-07 18:56:57")); 
+0

czy mogę zrobić to .000 dynamiczne? – sandy

+0

Cała idea przyrostka 'Z' jest taka, że ​​data jest wyrażana jako UTC; 'date()' nie robi tego, ponieważ bierze lokalną strefę czasową pod uwagę. –

+0

Domyślne dane php nie zawierają milisekund, ale jeśli pracujesz z aktualną datą, możesz użyć funkcji microtime(), aby ją uzyskać – Eugene

Powiązane problemy