0

私のウェブサイトでは、すべての時間と日付を次の形式で保存しています。

テーブル列:日付-16.01.2012テーブル列:時間-06:36:50 pm

これは、異なるタイムゾーンに住む人々に問題を引き起こしているため、これを単純なtime()文字列に変更することを検討していますが、サイトにはすでにそのようなtime(time()文字列ではなく古い)が含まれているコンテンツがたくさんあるためです)データベースにそのデータを保持したいので、これらの文字列をtime()に変更するにはどうすればよいか疑問に思っています。

私はデータベースとすべてを更新する方法を理解しています。strtotimeは物事が完璧であることが好きなので、16.01.201206:36:50pmをそれぞれのtime()文字列に実際に変換することに迷っています。

お時間をいただきありがとうございます。ご提案をお待ちしております。

4

3 に答える 3

2

データベースで変換を行う方法、またはデータベースがPHPにロードされたときにデータベースから日時を変換する方法を尋ねていますか?

後者の場合、日付をフォーマットする方法はたくさんあります。

date_formatのPHPマニュアルのコメントから引用:

    <?php

    $result = mysql_query("SELECT `datetime` FROM `table`");
    $row = mysql_fetch_row($result);
    $date = date_create($row[0]);

    echo date_format($date, 'Y-m-d H:i:s');
    #output: 2012-03-24 17:45:12

    echo date_format($date, 'd/m/Y H:i:s');
    #output: 24/03/2012 17:45:12

    echo date_format($date, 'd/m/y');
    #output: 24/03/12

    echo date_format($date, 'g:i A');
    #output: 5:45 PM

    echo date_format($date, 'G:ia');
    #output: 05:45pm

    echo date_format($date, 'g:ia \o\n l jS F Y');
    #output: 5:45pm on Saturday 24th March 2012

    ?>

これらはほんの一例です。その他のアイデアについては、このページをご覧ください。

コメントに基づいて編集:

DateTime :: createFromFormatを使用できます。これにより、渡す日時の形式を指定できます。

于 2012-05-08T01:51:15.377 に答える
1

mysqlと呼ばれる関数を探すstr_to_date

dbtableテキストフィールドが呼び出されdate_str、その形式がYYYYMMDDであるとします。ffクエリを使用して、適切な日付フィールドを出力できます。

SELECT str_to_date(date_str, '%Y%m%D') as date_fld FROM dbtable ...

ここにリンクがあります

于 2012-05-08T02:38:49.883 に答える
0

少し遅れていることは承知していますが、これもデータベースを通じて行うべきだと思います。これにより、いくつかの余分な手順が削除され、PHPの日付フォーマット関数に頼るよりも少し速くなると思います。次のようなSQLステートメントを記述できます。

"SELECT UNIX_TIMESTAMP(TIMESTAMP(STR_TO_DATE(Date, '%d.%m.%Y'), STR_TO_DATE(Time, '%r'))) AS epoch FROM Table"

それはあなたが探している適切なtime()フォーマットですべてを返すはずです。

于 2012-05-08T02:57:14.883 に答える