1

toString('dd MMMM YYY')関数を使用して、日付を文字列に変換しようとしています。しかし、ここでは、これは機能していません。

これが私のコードです:

    $date_start = new Zend_Date(strtotime($this->startdate));
    echo($date_start); 

結果は次のとおりです。2012年12月31日00:00:00

    $date_input = $date_start->toString('dd MMMM YYY');
    echo($date_input);

結果は次のとおりです。2013年12月31日

2012年12月31日を取得するにはどうすればよいですか?

4

2 に答える 2

5

これは、http: //framework.zend.com/issues/browse/ZF-5297で説明されている既知の問題です。

デフォルトの ISO 形式は PHP の形式とは異なることに注意してください。これは、以前に使用したことがない場合はイライラする可能性があります。特に、年と分の書式指定子は、意図したとおりに使用されないことがよくあります。

year には、よく間違えられる 2 つの指定子があります。ISO 年を表す Y 指定子と実際の年を表す y指定子。違いは小さいですが重要です。Y は、カレンダー形式でよく使用される ISO 年を計算します。たとえば、31 を参照してください。2007 年 12 月。実際の年は 2007 年ですが、2008 年の第 1 週の最初の週の最初の日です。したがって、「dd.MM.yyyy」を使用している場合は、 '31.December.2007' ですが、'dd.MM.YYYY' を使用すると '31.December.2008' になります。ご覧のとおり、これはバグではなく、使用される指定子に応じて予期される動作です。

" yyy" の代わりに " " を使用してくださいYYY

于 2013-01-04T22:28:39.053 に答える
3

YYY の代わりに yyy を使用します。

YYY は ISO-8601 の日付であり、カレンダーの日付とは異なります。

http://framework.zend.com/manual/1.12/en/zend.date.constants.html

于 2013-01-04T22:25:43.387 に答える