0

免責事項:文字がめちゃくちゃになっている場合は、日本語をサポートするフォント/書体をインストールする必要がある場合があります。

私はこれまでやってきたことを再現しようとしていますsetlocaleそしてstrftime

setlocale(LC_ALL, 'ja_JP.utf8');
$time = mktime();
echo strftime('%x', $time), '<br>';

出力:

2010年01月06日

Zend_Dateを使用していますが、年、月、日の日本の記号で同じフォーマットを再現することはできませんでした。

試行#1:

$locale = new Zend_Locale('ja_JP');

$date = new Zend_Date( strtotime('yesterday'), null, $locale);
//echo $date->toString('YYYY abcdefghijklmnopqrstuvwxy M dE');
echo $date->get('YYYY MMM DD');

出力:

2010 1月 004

試み#2:

echo $date->get(Zend_Date::DATE_FULL);

出力:

2010年1月5日火曜日

私の最初の試みでは、YEARとdayのシンボルを生成するための有効な定数を見つけることができないようです。後者は標準化された形式を使用しますが0、前月があるようにカスタマイズする必要があり、より制御しやすくなります。

将来的には柔軟にしたいと思うかもしれません。たとえば、en_USの日付では、年/月/日以降の文字は使用されませんが、日本語など、より一般的な言語にのみ適用されます。誤解していてあまり一般的ではないので教えてください。

前もって感謝します。

4

1 に答える 1

0

必要なのはDATE_LONG定数で、内部的には「FFFF」を指しているようです。DateクラスがLocaleクラスにどのように対応しているかの内部動作を学習して、シンボルを含む文字列全体を生成しようとしています。

更新:日付形式ではなく実際に日付単位を使用している場所を探し続け、必要な適切なデータを見つけました:

                <dateFormatLength type="long">
                    <dateFormat>
                        <pattern>y年M月d日&lt;/pattern>
                    </dateFormat>
                </dateFormatLength>

したがって、これを解析し、y、M、dを置き換えて、フォーマットされた日付を返します。

于 2010-01-08T17:43:09.453 に答える