0

こんにちは、 {member_birthday} という日付フィールドを format 属性でフォーマットしようとしています。しかし、属性をタグに適用すると、日付は正しい形式で表示されますが、日付が正しくありません。

コード:

<input type="text" name="display_birthday" id="display_birthday" value="{member_birthday}" maxlength="23" size="25"/> 

正しい日付、つまり 1982-11-08 12:00 AM を表示します

<input type="text" name="display_birthday" id="display_birthday" value="{member_birthday format="%d/%m/%Y"}" maxlength="23" size="25"/>

誤った日付、つまり 01/01/1970 を表示します

4

3 に答える 3

0

フィールドが実際にネイティブの EE 日付カスタム フィールドである場合member_birthday、日付は UNIX タイムスタンプとして格納され、コードは機能するはずです。

したがって、ネイティブの EE 日付フィールドを使用していないか、使用しているが、データを入力するときに適切な検証をバイパスしている (したがって、データベースで ISO スタイルの日付/時刻文字列になってしまう) と推測されます。

データベース (exp_channel_dataテーブル ) を調べて、そのフィールド データがどのように格納されているかを確認します。コントロール パネルからも日付を入力してみて、そのエントリがどのようになるかを確認してください。

于 2012-10-09T16:31:20.473 に答える
0

文字列 (または DateTime オブジェクト) のように見えmember_birthdayますが、日付としてフォーマットするには整数でなければなりません。

フォーマットする前に member_birthday を整数に変換します。安全なクラッカー コードにアクセスできる場合に使用するstrtotimeか、テンプレートで PHP 実行可能ブロックを使用して変数として事前解析することができます。しかし、それらができるのであれば、とにかくテンプレートなしでそれらをフォーマットすることもできます!

編集: http://expressionengine.com/wiki/Dates_Explained推奨:

データベースのタイムスタンプを直接読み書きする場合は、常にローカリゼーション関数を使用して EE と Unix のタイムスタンプを変換してください。

于 2012-10-09T10:20:15.917 に答える
0

セーフクラッカータグhttp://devot-ee.com/add-ons/support/zoo-visitor/viewthread/7449#25153内で日付形式関数が機能しないようですので、このプラグインをインストールしましたhttp://devot- ee.com/add-ons/nice-dateこのコードを使用

{exp:low_nice_date date="{member_birthday}" format="%d/%m/%Y"}
于 2012-10-10T14:20:12.510 に答える