2013-11-25 5 views
1

Когда я использую функцию strtotime, она дает разные результаты на двух разных серверах. Один из них дает мне правильный ответ. Он имеет версию php 5.2.10.php strtotime дает неправильные результаты

На другом сервере это дает мне неправильную дату, которая имеет версию php 5.0.4. Я думаю, что разница - причина.

Код:

$fromDate = $_POST['fromDate']; // 25-11-2013 
$strFromDate = date("Y-m-d", strtotime($fromDate)); 
echo $strFromDate; // 2018-05-06 

Может кто-нибудь помочь мне с этим?

+0

проверка часовых поясов на серверах .. Если вы хотите же результирующего набора часовых поясов на обоих серверах явно –

+0

Все зависит от установленного по умолчанию времени для этого сервера. Сделайте 'phpinfo()' на каждом и посмотрите, какая разница. – DevlshOne

+1

'Y-m-d' и у вас' '25-11-2013' <=' d-m-Y', что-то НЕ складывается. –

ответ

1

Это, вероятно, происходит потому, что PHP 5.0.4 еще не поддерживает формат d-m-Y см here.

Попробуйте изменить формат d-m-Y на Y-m-d. Вот один простой пример:

$fromDate = '25-11-2013'; 
sscanf($fromDate, '%d-%d-%d', $d, $m, $Y); 
$strFromDate = date("Y-m-d", strtotime("$Y-$m-$d")); 
echo $strFromDate; 

This будет работать на всех PHP 4.x и 5.x версии

+0

Brilliant. большое спасибо –

0

Возможно, проблема связана с локалями. Проверьте, соответствует ли он на обоих серверах.

Смежные вопросы