Исправляемая фатальная ошибка: объект класса DateInterval не может быть преобразован в строку

<?php

session_start();

@mysql_connect('localhost','jk','') or die('Please Check Username or Password');
@mysql_select_db('jks') or die('error connetcing database');

$qry3="Select ID from fresh_orders";
$id=mysql_query($qry3);

$qry1="Select CurDate from fresh_orders";
$rs=mysql_query($qry1);
$row=mysql_fetch_array($rs);
$d210=$row[0];
$d21=date("Y-m-d", strtotime($d210));
echo ("  d21 = "),$d21;

$qry2="Select DueDate from fresh_orders";
$rss=mysql_query($qry2);
$row=mysql_fetch_array($rss);

$d71=$row[0];
$d7=date("Y-m-d", strtotime($d71));
echo ("  d7 = "),$d7;$date1=date_create("$d21");
$date2=date_create("$d7");
$interval=date_diff($date1,$date2);
echo $interval->format("%R%a days");$qry="update fresh_orders set DDays='".$interval."' where ID=".$id."";

mysql_query($qry);
echo $qry;
?>

Вывод следующий:

d21 = 2016-07-20 d7 = 2016-07-10 days = -10 days

(!) Исправляемая фатальная ошибка: объект класса DateInterval не может быть
преобразован в строку

Он правильно рассчитывает разницу, но не может обновиться в базе данных!
Выдает фатальную ошибку при попытке обновления в базе данных. Пожалуйста, помогите!

Заранее спасибо

0

Решение

Вы пытаетесь сохранить результат date_diff($date1,$date2) в базу данных. В частности, вы пытаетесь построить строку (SQL) с ним.

date_diff создает тип DateInterval, который нельзя использовать в качестве строки — вот почему вам нужно вызвать ->format на это, когда ты echo Это. Вам также нужно позвонить ->format('%d') где вы строите заявление SQL.

Ваш вывод, вероятно, не говорит days = -10 days, но что-то вроде days = -10ays, Это потому, что вы форматируете интервал странным образом — взгляните на http://php.net/manual/en/dateinterval.format.php

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector