2013-02-14 4 views

答えて

24

あなたは正気の比較のために同じ時間帯を使用する必要があります。

echo strtotime("2011-01-26 13:51:50 GMT"); 
// 1296049910 

var d = Date.parse("2011-01-26 13:51:50 GMT")/1000; 
console.log(d); 
// 1296049910 

標準によると

を更新し、唯一のRFC 2822の形式の日付はよくサポートされています。

Date.parse("Wed, 26 Jan 2011 13:51:50 +0000")/1000 

な日付を生成するには、PHPでgmdate('r')を使用することができます。

echo gmdate('r', 1296049910); 
+0

Mozillaブラウザでは「NaN」となります。 – Chinmay235

5

JavaScriptがミリ秒を使用していますタイムスタンプとして、PHPは秒を使用します。その結果、あなたはそれが要因1000

サンプル

echo date('Y-m-d', TIMESTAMP/1000);

コメント応答

<script type="text/javascript" src="js/jquery.js"></script> 
<script type="text/javascript"> 

    function toTimestamp(year,month,day,hour,minute,second) 
    { 
     var datum = new Date(Date.UTC(year,month-1,day,hour,minute,second)); 
     return datum.getTime()/1000; 
    } 

    $(function() 
    { 
     console.log(toTimestamp(2011,01,26,13,51,50)); 

    }); 

</script> 

<?php 

echo $the_date = strtotime("2011-01-26 13:51:50");
+1

これだけの違いはありません:) –

+0

@ジャックTIMEZONEも問題はありますが、最初はすでにあなたから与えられているので、2番目の違いを与えます。 –

+0

thankx dipesh bhai j ... –

2

strtotime()Date.parse()収量でオフになっているように、非常に異なる日付を取得します秒とミリ秒の解像度を持つUNIXタイムスタンプ。ただし、入力文字列にタイムゾーン情報がない場合は、現地時間とみなされます。したがって、入力文字列2011-01-26T13:51:50は、両方のマシンでタイムスタンプを生成するためにPHP(またはJavaScript)が使用されても、異なるマシン上で異なる出力を生成する可能性があります。

解決策は、文字列内のタイムゾーンを明示的に指定することです。これにより、どのマシンでも同じ結果が得られるはずです。

Date.parse("Jan 26, 2011 13:51:50 GMT+0500")/1000; // 1296031910 
strtotime("Jan 26, 2011 13:51:50 GMT+0500");   // 1296031910 
関連する問題