. У меня есть класс календаря. Где я ввожу год только от пользователя и генерировать целые дни года и сохранять в базе данных.Ошибка: вызов в функцию функции-члена() для не-объекта. Создание каждого дня года.
class Calendar
{
/**
* @var \DateTime
*
* @ORM\Column(name="today_date", type="datetime", nullable=true)
*/
protected $todayDate;
/**
* @var boolean $isBusinessDay
* @ORM\Column(name="is_business_day", type="boolean", nullable=true)
*/
protected $isBusinessDay;
/**
* @var boolean $isHoliday
* @ORM\Column(name="is_holiday", type="boolean", nullable=true)
*/
protected $isHoliday;
/**
* @var time $openTime
*
* @ORM\Column(name="open_time", type="time", nullable=true)
*/
protected $openTime;
/**
* @var time $openTime
*
* @ORM\Column(name="close_time", type="time", nullable=true)
*/
protected $closeTime;
}
if ($form->isSubmitted() && $form->isValid()) {
$weekday = $form["weekday"]->getData();
$start_date = $form["todayDate"]->getData();
$start_date = (string) $start_date->format('Y-m-d');
$start_day = date('z', strtotime($start_date));
$days_in_a_year = date('z', strtotime('2016-12-31'));
$number_of_days = ($days_in_a_year - $start_day) +1 ;
for ($i = 0; $i < $number_of_days; $i++) {
$date = strtotime(date("Y-m-d", strtotime($start_date)) . " +$i day");
print date('d F - l', $date) .'<br />';
if (in_array(date('l', $date), $weekday))
{
print "Match found".'<br />';
$date_temp2 = date('Y-m-d',$date);
print $date_temp2.'<br />';
$date_temp = new \DateTime($date_temp2);
$TodayDate = $date_temp->format('Y-m-d');
$calendar2 = new Calendar();
$calendar2->setTodayDate($TodayDate);
$calendar2->setOpenTime($form["openTime"]->getData());
$calendar2->setCloseTime($form["closeTime"]->getData());
$calendar2->setIsBusinessDay(true);
$calendar2->setIsHoliday(false);
$em->persist($calendar2);
}
else
{
print "Match not found".'<br />';
$calendar2 = new Calendar();
$calendar2->setIsBusinessDay(false);
$calendar2->setIsHoliday(true);
$em->persist($calendar2);
}
}
$em->flush();
}
На самом деле я хочу получить Год только от пользователя. Получите первый день года и сохраните в базе данных, добавив один дополнительный день. В случае блокировки он печатает дату всего года. в
30 December - Friday
Match found
2016-12-30
31 December - Saturday
Match not found
И В конце-го я получаю эту ошибку
Error: Call to a member function format() on a non-object
вместо этой строки: - $ date_temp = new \ DateTime ($ date_temp2); $ TodayDate = $ date_temp-> format ('Ym-d'); 'написать одну строку: -' $ TodayDate = date (' Ym-d ', strtotime ($ date_temp2)); ' –
, в какой строке вы получили эту ошибку? можете ли вы отметить это по коду? – SarangaR
@SarangaR Вот почему я не могу отлаживать, потому что он печатает все даты, которые я печатаю в блоке. Но в конце возникает ошибка. –