web-dev-qa-db-ja.com

PHP日付文字列をタイムスタンプとしてMySQLデータベースに保存

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。協力してくれてありがとうございます!

10
nimrod

これはあなたのために働くかもしれません:

$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');";
21
Vijaya Pandey
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');"
0
swaroop suthar

MySQLNOW()関数があります。

insert into sale(service, amount, date, customerid_fk)values('$service', '$amount', NOW(), '$id');
0
JAYESH

これは私のために働いた:

//timestamp fix
$date = new \DateTime();
$created_at = $date->setTimestamp(intval($timestamp));
0
Sam Deering

タイムスタンプを置くために頂点を削除する必要があります

insert into sale(service, amount, date, customerid_fk) values('$service', '$amount', $timestamp, '$id')

または、日付 'Y-m-d H:i:s'にこの形式を使用します

0

日付フィールドタイプがDATEまたは_DATE/TIME_の場合、このようなタイムスタンプが追加されます。日付フィールドタイプをvarcharにし、タイムスタンプを文字列として追加する必要があります。

d/m/yの形式で日付を追加する必要がある場合、mysqlは_y-m-d_のような異なる形式を持っているため、追加する前に次のようにすることができます

date('y-m-d', strtotime('your-date-string'))

0
user2362083

mysqlメソッドを使用する必要があります

Easyuiの日付ボックスからこの日付を取得しました

2016年8月25日

その後

$date = "FROM_UNIXTIME(".strtotime(08/25/2016).")";

INSERT INTO TABLE (col1, col2, dateI) values($a, $X, $date);
0
Marco Valencia