2

PHP と Javascript で特定の日の 2 つの等しいタイムスタンプを作成したいのですが、違いがあります....

2012 年 7 月 1 日:

PHP

$test = mktime(0,0,0,7,1,2012); gives 1341093600

JavaScript

var d = Date.UTC(2012,6,1); 
var timestamp = d/1000;   gives 1341100800

なんで2時間差?

4

1 に答える 1

6

への呼び出しDate.UTCは、2012 年 7 月 1 日 UTC の午前 0 時のタイムスタンプを作成します。

一方、mktimeは、PHP が使用するように構成されているタイムゾーンを除いて、同じことを行います。

つまり、サーバーは UTC に設定されていません。

最も簡単な解決策はおそらくstrtotimeです:

$timestamp = strtotime('2012-07-01 UTC');

gmmktimeもあります。または、PHP のタイムゾーンを UTC に設定することもできます。で行いますが、コードで行うには、 date_default_timezone_set を使用でき.iniます

date_default_timezone_set('UTC');

個人的な好みのメモとして、mktime は避けます。との間strtotimeDateTime、mktime がクリーンで読みやすいコードになるケースはほとんどありません。mktime の野獣的なパラメーター リストは、それが入っている行を単純に恐ろしく見せます。

于 2012-06-29T09:22:12.233 に答える