2015-11-15 2 views
1

Вот код PHP.Почему метод DateTime :: createFromFormat() оказывается неопределенным?

public function storeUser($name, $email, $password, $str_birthday) { 
    $uuid = uniqid('', true); 
    $hash = $this->hashSSHA($password); 
    $encrypted_password = $hash["encrypted_password"]; // encrypted password 
    $salt = $hash["salt"]; // salt 
    $dob = DateTime::createFromFormat('m/d/Y', $str_birthday)->format('Y-m-d'); 

    $result = mysqli_query($this->db->connect(), "INSERT INTO users(unique_id, name, email, encrypted_password, birthday, salt, created_at) VALUES('$uuid', '$name', '$email', '$encrypted_password', '$dob', '$salt', NOW())"); 

    // check for successful store 
    if ($result) { 

     // get user details 
     $result = mysqli_query($this->db->connect(), "SELECT * FROM users WHERE email = '$email'"); 

     // return user details 
     return mysqli_fetch_array($result); 

    } else { 
     return false; 
    } 
} 

После запуска команды в браузере говорится, что следующая часть не определена.

$dob = DateTime::createFromFormat('m/d/Y', $str_birthday)->format('Y-m-d');

Но я уже нашел довольно много предложений, чтобы использовать этот метод, чтобы изменить формат даты, чтобы сохранить его в базу данных MySQL.

+0

Вы уверены, что '$ str_birthday' всегда предоставляется? Обратите внимание на документацию, в которой говорится: «Возвращает новый экземпляр DateTime или FALSE при сбое» (и поэтому вы не можете вызывать формат '-> ('Y-m-d')' в этих случаях). – jso

+0

Здесь также был хороший комментарий на PHP-версии, но он исчез. Обратите внимание, что 'DateTime :: createFromFormat' доступен для PHP> = 5.3.0. – jso

+0

@jso 'DateTime :: createFromFormat' доступно, но дело следующее; Функция '-> format()', кажется, не определена. – MarshallLee

ответ

-2

Гораздо более простой способ для достижения этой цели:

$dob = date("Y-m-d", strtotime($str_birthday)); 
+1

Рекомендация _older_ и менее универсальные решения без объяснения не является хорошей идеей. Кроме того, вы не ответили на вопрос. –

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