0

次のコードがあり、保存されているタイムスタンプを取得して MySQL クエリに渡したいのです$beginが、クエリは次のように失敗しています。

Fatal error: Unsupported operand types

変数を設定するために使用されるコードは次の$beginとおりです。

$datepicker_begin = "01/07/2013";
$begin = DateTime::createFromFormat('m/d/Y', $datepicker_begin);
$beginObj = $begin->format('Y-m-d');
$begin = strtotime($beginObj);  // becomes Unix Timestamp

クエリのコードは次のとおりです。dateタイプであり、と呼ばれる日付列をチェックしてdate、テーブルに日付が存在するかどうかを確認します。

// Check if chosen date is available.
$s=$dbh->prepare("
    SELECT DISTINCT
        `date`
    FROM
        `report_coa_bal_hist`
    WHERE
        UNIX_TIMESTAMP(date) = ?
");

if ($s->execute($begin)) {

    return true;

} else {

    return false;

}
4

3 に答える 3

0

strtotimeUNIXタイムスタンプで日付を作成します

この変数を使用せずに直接使用する必要がありstrtotimeます

$begin = strtotime($beginObj);

編集

このクエリを`aroundで使用しますdate

$s=$dbh->prepare("
SELECT DISTINCT
    `date`
FROM
    `report_coa_bal_hist`
WHERE
    UNIX_TIMESTAMP(`date`) = ?");

if ($s->execute($begin)) {

    return true;

} else {

    return false;

}
于 2013-05-08T04:21:42.220 に答える
0

現在のコードは正常に動作するはずですが、代わりにこれを試すこともできます

$datepicker_begin = "01/07/2013";
$begin = DateTime::createFromFormat('m/d/Y', $datepicker_begin);
echo $begin = $begin->getTimestamp();;  // becomes Unix Timestamp

http://php.net/manual/en/datetime.gettimestamp.phpをご覧ください。

于 2013-05-08T04:23:38.903 に答える
0

FROM_UNIXTIME を試してください:

$datepicker_begin = "01/07/2013";
$begin = DateTime::createFromFormat('m/d/Y', $datepicker_begin);
$beginObj = $begin->format('Y-m-d');
$begin = strtotime($beginObj);  // becomes Unix Timestamp
$sql = "INSERT INTO test(ID, time) VALUES(NULL, FROM_UNIXTIME('$begin'));";
mysql_query($sql);
于 2013-05-08T04:29:04.727 に答える