2012-01-28 7 views
0

Я хотел бы создать функцию, которая проверяет строку даты.PHP Datetime :: format

Мой модуль отображает дату, а на бэкенде есть некоторые форматы, которые пользователь может использовать для отображения даты на интерфейсе, а также расширенный ввод формата даты, где он может указать строку формата даты, такую ​​как «H: i: s 'или все, что он хочет.

Если опция расширенного формата не указана, она использует формат по умолчанию.

Чтобы проверить правильность формата в поступил на вход, я думал, что я могу сделать:

$ в настоящее время = новый Datetime («теперь»);

если (! $ Сейчас-> формат ($ формат)) .... ложный формат

Но метод формат не возвращает ложь, если формат $ = х или efkjfkefefje, он просто возвращает саму строку ,

Я хотел бы, чтобы вернуться ложным, если есть carácter, который отличается от указанных caracters здесь: http://www.php.net/manual/en/function.date.php

Но есть так много дел. Например, «H: i: s» будет действительным, но «Его» не будет.

Я не хочу, чтобы он анализировал ':' или '/', я имею в виду, что мы можем считать, что «H/i/s» действителен, потому что это вход для продвинутых пользователей.

Я бы хотел, чтобы он возвращал false, если caracter отличается от списка здесь http://www.php.net/manual/en/function.date.php или если между персонажами нет места: «Его» недействительно, в то время как только 3 персонажа.

Я не очень хорошо знаком с регулярным выражением.

+0

Что делать, если мне нравятся мои даты «Его»? Эти сепараторы, такие как двоеточие и косая черта, для кисок, мне нравятся даты. Мне также нравится, что дата говорит: «У меня есть шарики из стали на' Его'. Но вы считали бы этот неправильный формат. Отправляясь в сторону, я думаю, что если это для продвинутых пользователей, пусть они делают форматирование по своему усмотрению. – dmedvinsky

+0

Да, вы правы. Благодарю. На самом деле я могу сохранить свое решение, и если он отобразит строку, он изменит формат. Это только для продвинутых пользователей – adieuuu

ответ

3

Для проверки строки формата даты вы должны использовать DateTime :: createFromFormat.

http://www.php.net/manual/en/datetime.createfromformat.php

он возвращает объект DateTime, если он успешно создан, или ложь, если строка даты при условии, не соответствует формату.

+0

Спасибо :) Это лучший способ. – adieuuu

+0

Не стесняйтесь повышать его и отмечать как принятое, если никто не сообщает лучший ответ через некоторое время: p. (Woo pandering! :)) – Corbin

+0

Я сделал, спасибо :) – adieuuu