PHPの日付文字列をタイムスタンプデータ型としてMySQLデータベースに保存しようとしています。これに関する投稿をたくさん見つけましたが、どれもうまくいきませんでした。これを試しました。 :
$date = $_POST['date'];
$timestamp = date("m/d/Y", strtotime($date));
$sql = "insert into sale(service, amount, date, customerid_fk) values('$service', '$amount', '$timestamp', '$id');";
しかし、データベースでは、次の情報しか得られません。
0000-00-00 00:00:00
POSTオブジェクトからの入力文字列は05/30/2013
。協力してくれてありがとうございます!
これはあなたのために働くかもしれません:
$date = $_POST['date'];
$timestamp = date('Y-m-d H:i:s', strtotime($date));
$sql = "insert into sale(service, amount, date, customerid_fk) values('$service', '$amount', '$timestamp', '$id');";
SELECT UNIX_TIMESTAMP('2005-03-27 03:00:00'); -- **1111885200**
SELECT FROM_UNIXTIME(1111885200); -- **2005-03-27 03:00:00**
$date = $_POST['date'];
$timestamp = date('Y-m-d H:i:s', strtotime($date));
$sql = "insert into sale(service, amount, date, customerid_fk) values
('$service', '$amount', UNIX_TIMESTAMP('$timestamp'), '$id');"
MySQLにNOW()
関数があります。
insert into sale(service, amount, date, customerid_fk)values('$service', '$amount', NOW(), '$id');
これは私のために働いた:
//timestamp fix
$date = new \DateTime();
$created_at = $date->setTimestamp(intval($timestamp));
タイムスタンプを置くために頂点を削除する必要があります
insert into sale(service, amount, date, customerid_fk) values('$service', '$amount', $timestamp, '$id')
または、日付 'Y-m-d H:i:s'にこの形式を使用します
日付フィールドタイプがDATE
または_DATE/TIME
_の場合、このようなタイムスタンプが追加されます。日付フィールドタイプをvarcharにし、タイムスタンプを文字列として追加する必要があります。
d/m/yの形式で日付を追加する必要がある場合、mysqlは_y-m-d
_のような異なる形式を持っているため、追加する前に次のようにすることができます
date('y-m-d', strtotime('your-date-string'))
mysqlメソッドを使用する必要があります
Easyuiの日付ボックスからこの日付を取得しました
2016年8月25日
その後
$date = "FROM_UNIXTIME(".strtotime(08/25/2016).")";
INSERT INTO TABLE (col1, col2, dateI) values($a, $X, $date);