Опитвам се да правя изчисление на период между бъдеща дата и днешна дата, (по-скоро дата, час, минута, секунда),
обаче получавам събщение за неправилно подаден параметър:
<?php
$dt_format = 'Y-M-d H:i:s';
date_default_timezone_set("Europe/Sofia");
$to_date = date("Y-m-d H:i:s");
$date1 = new DateTime('2016-09-01 14:00:00');
$date2 = new DateTime('2016-09-01 14:15:00');
$diff1 = $to_date->diff($date1); /* грешка */
print($diff1 . $new_row);
$diff2 = $to_date->diff($date2);
print($diff2 . $new_row);
?>
Получавам грешка:
Fatal error: Call to a member function diff() on string in index.php
Тогава добавям един ред за конвертиране от стринг в дата:
<?php
$dt_format = 'Y-M-d H:i:s';
date_default_timezone_set("Europe/Sofia");
$to_date = date("Y-m-d H:i:s");
$date1 = new DateTime('2016-09-01 14:00:00');
$date2 = new DateTime('2016-09-01 14:15:00');
$to_date = DateTime::createFromFormat($dt_format, $to_date);
$diff1 = $to_date->diff($date1); /* грешка */
print($diff1 . $new_row);
$diff2 = $to_date->diff($date2);
print($diff2 . $new_row);
?>
Тогава получавам съобщение за грешка:
Fatal error: Call to a member function diff() on boolean in index.php
И закъсах тотално
Здрасти колега
В първия ти пример гърми защото date() връща...стринг, а не DateTime обект, съответно ти се опитваш да извикаш метод на стринг, което няма как да стане.
Във втория ти пример имаш разминаване между двата формата - на едното място е 'Y-
m-d H:i:s', а на другото 'Y-
M-d H:i:s' (голямо и малко М във формата ще имат различни резултати, затова гърми). Ако ги направиш еднакви на двете места, примера работи.
Предполагам че драскаш някакво скриптче, но ако ще го ползваш в проект, не се мъчи с default-ния DateTime, а ползвай
Carbon библиотеката.
Между другото, ако искаш да научиш нещо ново, защо не се хванеш да научиш MEAN (MongoDB, ExpressJS, AngularJS, NodeJS)? Според мен това има своите преимущества и има глад за такива специалисти.
Той може и Java ЕЕ да научи ако му се учи нещо ново, там също има глад за специалисти