Странный ответ strtotime PHP - PullRequest
0 голосов
/ 04 июля 2019

У меня есть код, в котором я использую strtotime () , чтобы получить дату и время в PHP.

Столкнулся со странным ответом.

Случай 1. Я получил дату типа «Вторник, 2 июля, 6 часов вечера»: strtotime выдает bool (false).

<?php $case1 = strtotime("Tue July 2 6pm"); 
var_dump($case1);
?>

Случай 2. Если датанапример, «вторник, 2 июля, 6:00 вечера»: strtotime дает метку времени « 1562115600 », принимая год за текущий.

<?php $case2 = strtotime("Tue July 2 6:00pm"); 
var_dump($case2);
?>

Может кто-нибудь помочь мне.Почему strtotime дал bool (false) для первого случая?

Что можно сделать, чтобы это исправить, пожалуйста, помогите?

Ответы [ 2 ]

4 голосов
/ 04 июля 2019

проверьте руководство php для strtotime :

Функция ожидает получения строки, содержащей формат даты на английском языке, и попытается проанализировать этот формат в метку времени Unix (количество секунд с 1 января 1970 г. 00:00:00 UTC),

Возвращает метку времени при успехе, иначе FALSE.

Чтобы исправить, его необходимо преобразовать в действительный формат

допустимые форматы даты и времени в php

0 голосов
/ 04 июля 2019

К вашей первой точке:

<?php
date_create("Tue Jul 2 6pm");
var_dump(date_get_last_errors());

Выдает ошибку: «Часовой пояс не найден в базе данных». Это означает, что он не распознается как допустимая строка даты / времени. Вы можете явно указать формат:

date_create_from_format("D F j ga", "Tue Jul 2 6pm")
...