0

次の属性を与える mktime メソッドを使用して UNIX タイムスタンプを作成しています。

print_r(mktime(0,0,0,3,1,2009));
print_r(mktime(null,null,null,3,1,2009) / 60 / 60 / 24) . "days");`

これにより、次の結果が作成されます

1235862000

14303.958333333 days

これは 14304 日である必要があります。この場合の問題は、冬時間です。is_dst パラメータを使用できます。0 (デフォルト -1) を使用すると、これが正しく機能し、結果として 14304 日になることがあります。

ただし、これにより次の問題が発生する場合があります。

厳格な基準: mktime() [function.mktime]: is_dst パラメータは非推奨です

それが何を意味するのか、それについて何ができるのかわかりません。誰かアイデアはありますか?冬の時間はひどい頭痛を引き起こしているので....

4

3 に答える 3

2

gmmktimeを使用します。

于 2009-03-30T09:30:20.617 に答える
2

PHPマニュアルページから:

"日付/時刻関数を呼び出すたびに、タイム ゾーンが有効でない場合は E_NOTICE が生成され、システム設定または TZ 環境変数を使用している場合は E_STRICT メッセージが生成されます。date_default_timezone_set()も参照してください"

これはおそらく、以前にdate_default_timezone_set()を使用し、 is_dst パラメータをスキップする必要があることを意味します

于 2009-03-30T10:13:36.613 に答える
2
date("I", time());

サマータイムの場合は 1、そうでない場合は 0 を返します。

于 2009-03-30T10:08:59.277 に答える