2012-03-08 6 views
1

PHP/MySQLの日付書式の問題があります。ここでは、日付変数を作成します。PHPとMySQLの日付書式設定の問題

$checkDate = date("d/m/y H:i", time()); 
$datestrto = strtotime($checkDate); 

次に、データ型bigintのmysqlテーブルに挿入します。形式D/M/Y H:iで日付をecho'ingの

echo '<td>'.date("d/m/y H:i",$row['f_uploaded_date']).'</td>'; 

しかしistead、それは日付をecho'es:私は、その後、後に、私は日付をエコーする必要があるとき、私はこのコードを使用

m/d/y H:iの形式で入力します。 これはなぜ起こっているのか、どのように修正するのか誰にも説明できますか?

だからあなたが戻ってのUNIX timstampにフォーマットされた時刻文字列を変換し、データベースにそれを挿入しフォーマットされた日付文字列へのUNIXタイムスタンプを変換し、事前に アダム

+1

最初に '$ checkDate'を直接挿入しないで変換するのはなぜですか? – Sirko

+0

あなたが保存しているデータ型はbigintです。これは問題だと思います。 –

答えて

1

はこのようにそれを行う:

INSERT INTO yourtable(something,somedate) VALUES('something',str_to_date('".$checkDate."','%d/%m/%y %H:%i')) 

、あなたは、MySQLからそれを引き出したときに、このようにそれを行う:あなたが使用してPHPで、その後

SELECT *,date_format(somedate,'%D/%M/%Y %H:%i') as formateddate from yourtable 

$row['formateddate'] 

は、それはあなたのお役に立てば幸いです:)

EDIT: 完全なコード:

$ddate = date("d/m/y H:i", time()); 
$sql = "INSERT INTO files (rowID, file, mimetype, data, uploaded_by, uploaded_date, size, times_downloaded, description) VALUES (NULL, '$fileName', '$fileType', '$content', '$user', str_to_date('".$ddate."','%d/%m/%y %H:%i'), $fileSize, 0, '$description')"; 
+0

Hmm ..そうですね、これは?$ date = date( "d/m/y H:i"、time()); $ sqlを=「ファイル(ROWID、ファイル、MIMEタイプ、データ、uploaded_by、uploaded_date、サイズ、times_downloaded、説明) \t VALUES(NULL、 '$ fileNameに'、 '$のfileType'、 '$の内容'、「$ユーザ。INSERT INTO '、'%d /%m /%y%H:%i ')、$ fileSize、0、' $ description ') ";' – Theadamlt

+0

はい、しかし変数名を変更しました。 $ dateに挿入してください。それは$ checkDateですので、必ず確認してください:) – FeRtoll

+1

PHPのポイント書式設定データとは何ですか?皆さんは、「最も長くて面倒な方法で」クラブや何かのメンバーですか? –

1

、ありがとうございました。あなたが最初に持っていたunixタイムスタンプを挿入するだけで簡単にはなりませんか? PHPコードを気にしないでください。

INSERT INTO sometable (id, f_uploaded_date) 
VALUES ($id, UNIX_TIMESTAMP(NOW())) 

あなたが記述した明白な問題は、strtotimeが99/99/9999形式の日付文字列が、dd/mm/yyyyではなくmm/dd/yyyyのアメリカンスタイルであることが予想されるためです。イギリス。あなたはMySQLのテーブルに挿入し

-1

あなたが使用することができますPHPの変数に変換する際、あなたのMySQLデータベースから日付形式を引くとすることができます

$num=mysql_numrows($result); 

$i=0; 
while ($i <= $num) { 
$date=mysql_result($result,$i,"Date"); 
$date = date('d-m-Y', strtotime($date)); 
echo $date."<br>"; 
} 

どこ$結果あなたのmysqlクエリの結果であり、 "Date"は列の名前です。しかし、私はこの方法を時間とともに使用するのは不確かです。

--EDIT--

リンク:http://php.net/manual/en/function.date.php

+0

彼はすでにそれをやっています。 –

+0

これが解決しましたか? –

+0

関連性の高い詳細な回答が投票されたのはなぜですか? –

1

まず、

$checkDate = date("d/m/y H:i", time()); 
$datestrto = strtotime($checkDate); 

$datestrto変数にtime() frunction結果を割り当てるかなり面白い方法です。あなただけのINSERTクエリでunix_timestamp() MySQLの機能を使用できるよう

次に、あなたは、どちらかその変数は必要ありません。

今すぐご質問ください。

形式D/M/Yの形式で日付をエコーするistead:H、i:m/d/yの形式で日付をエコーし​​ます。

あなたの構文をダブルチェック。どこかのタイプミスがあります。

+0

彼はBigintとして日付を保存していますが、私は問題を作成していると思います。 –

+0

bigintは問題にはなりません。このフィールド*はint型の数値をすべて格納できる –