0

次のようなフィールドカーデートを持っています

 <?php
    $date = date_default_timezone_set('Asia/Kolkata');
    $time= date("l, F d, Y h:i:s A"); 
    ?>
    <input type="hidden" value="<?php echo $time; ?>" name="curdate" id="curdate"/>

データベースには現在の日付と時刻が必要です。

別の列「curdatesql」があり、mysql の時間形式に上記の時間がかかります。

 "' . $this->SanitizeForSQL($formvars['curdate']) . '",
 STR_TO_DATE("' . $this->SanitizeForSQL($formvars['curdate']) . '","%W, %M %d, %Y %h:%i:%s %p"),

問題は、AM、PM の部分を mysql テーブルに取り込んでいないことです...なぜですか?

2013-07-20 13:26:35 (AM PM は存在しません)。

4

2 に答える 2

1

MySQL には、いくつかの日付と時刻の形式があります。フォームに値を表示する DATETIME を使用しているようですYYYY-MM-DD HH:MM:SSHHは 24 時間形式であることに注意してください。

AM/PM extra は完全に冗長になるため、保存しないでください。最良の場合、メモリを浪費し、最悪の場合、不整合が発生します。

代わりに、プレゼンテーション層でこれを処理する必要があります。

if(hh >= 12) {
    PM
} else {
    AM
}

hours = hh % 12

MySQL DATE_FORMATを使用して、好きな形式を取得できることに注意してください。次のようになります。

SELECT DATE_FORMAT(myStoredDatabaseAttribute, '%h %p') FROM myTable
于 2013-07-20T09:59:47.927 に答える
0

私のSQLでは、日付は24時間形式とバイナリで保存されています。表現に 12 時間表示形式が必要な場合は、プレゼンテーション レイヤーで処理する必要があります。

于 2013-07-20T09:36:56.997 に答える