Вот код 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.
Вы уверены, что '$ str_birthday' всегда предоставляется? Обратите внимание на документацию, в которой говорится: «Возвращает новый экземпляр DateTime или FALSE при сбое» (и поэтому вы не можете вызывать формат '-> ('Y-m-d')' в этих случаях). – jso
Здесь также был хороший комментарий на PHP-версии, но он исчез. Обратите внимание, что 'DateTime :: createFromFormat' доступен для PHP> = 5.3.0. – jso
@jso 'DateTime :: createFromFormat' доступно, но дело следующее; Функция '-> format()', кажется, не определена. – MarshallLee