2017-11-14 10 views
-1

私は前のページからの日付のパスとデータベースに保存されている日付(unixタイムスタンプ形式)を比較しようとしています。私のコードは以下の通りです。 エラー:回復可能な致命的なエラー:DateTimeクラスのオブジェクトを14行目のC:\ xampp \ htdocs \ check.phpの文字列に変換できませんでした。DateTime unixタイムスタンプを比較

「datetime2」と比較するには、 10桁のunixtimeとして保存します。

基本的に私は通常の日付に変換したくありません。そのまま10桁のunixtimestampとして保存してください。

foreachループも調べてください。選択した日付がデータベースに表示されているかどうか確認したい

は、次のようにpropriateの方法で文字列に変換してみてくださいあなたの代わりにクラスのDateTimeのオブジェクトを使用しての

<?PHP 
 
\t session_start(); 
 
\t 
 
\t $userid = $_SESSION['userid']; 
 
\t $datetime = $_POST['datetime']; 
 
\t $available = 0; 
 
\t \t 
 
\t $date = $datetime; $datetime2 = new DateTime($date); echo $datetime2->getTimestamp(); 
 

 

 

 
\t $con = mysqli_connect('localhost', 'root', 'abc123'); 
 

 
\t $query = "SELECT COUNT * FROM reservation WHERE InstallDate='" . $datetime2 . "'"; 
 

 
    \t if (!$con) 
 
     \t { 
 
     \t \t die('Could not connect: ' . mysqli_error($con)); 
 
     \t } 
 

 

 
    \t mysqli_select_db($con, 'btr'); 
 

 

 
    \t foreach(mysqli_query($con, $query)as $row) 
 
\t { 
 
\t \t if($row <=1) 
 
\t \t { 
 
\t \t \t $available = 1; 
 
\t \t \t echo $available; 
 
\t \t } \t 
 
\t \t 
 
\t } 
 

 

 
    \t mysqli_close($con); 
 

 
?>

+0

なぜ値を保存するために 'getTimestamp()'を使わないのですか? – guyaloni

+0

私はそれを取得しません。 – zach89

+0

日付に変換したくない場合は、10桁の文字列を使用します。しかし、あなたがやっていることは、10桁の文字列から始めて、それからDateTimeオブジェクトを作成し、そのDateTimeオブジェクトをSQLクエリに渡すことです。 – miknik

答えて

0

ありがとう:

$query = 
"SELECT COUNT * FROM reservation WHERE InstallDate='" 
.$datetime2->format('d/m/Y') 
."'"; 

d/m/Yセパレータを調整しますあなたのデータベースの場合、例えば、MySQLはd.m.Yの分離を使用します。

+0

10桁の時間と直接比較するとどうなりますか?その方法で保存して比較することが可能ですか? – zach89