Мне нужно преобразовать формат даты в mm-dd-yyyy
Я не знаю, какой формат текущей даты является динамическим, поэтому, если у меня есть динамический формат даты уже в mm-dd-yyyy
тогда функция date()
возвращается ниже Outout
$date='02-13-2011'; echo date('md-Y',strtotime($date));
выход
01-01-1970 ?>
http://codepad.org/AFZ6jel7
Поэтому я должен проверить, уже ли дата в mm-dd-yyyy
а не применять форматирование даты. Есть ли другой способ сделать это? может быть передан еще один параметр в этих функциях или что-то подобное.
Благодарю.
Я сильно подозреваю, что именно это вызывает проблему:
Даты в форматах m / d / y или dmy устраняются неоднозначно, глядя на разделитель между различными компонентами: если разделитель является косой чертой (/), то предполагается, что американский m / d / y; тогда как если разделитель является тире (-) или точкой (.), тогда предполагается европейский формат dmy.
(Найдено в документации strtotime .)
У вас есть разделители тире, поэтому он принимает формат dmy, анализирует его как месяц 13 и, таким образом, эффективно терпит неудачу.
Параметры, которые я могу придумать, не будучи разработчиком PHP:
Замена – с помощью / для mdY поможет.
echo date('md-Y',strtotime(str_replace('-', '/', $date)));