2012-05-02 5 views
0

JavaScriptとphpの日付が混乱しています。javascriptとphpの日付で奇妙な問題

<?php 
$mydate = date('2012-05-02 17:00:00'); 
echo 'Today PHP --'.$mydate; 
$mytimstamp = strtotime($mydate); 
echo '<br/>My PHP unix time stamp --'.$mytimstamp; 
echo '<br/>'; ?> 
<script type="text/javascript"> 
document.write('My Javascript unix time stamp --'+new Date(Number('<?php echo $mytimstamp;?>')*1000)); 
</script> 

OUTPUT

Today PHP -- 2012-05-02 17:00:00 
My PHP unix time stamp --1335978000 
My Javascript unix time stamp --Wed May 02 2012 22:30:00 GMT+0530 (India Standard Time) 

私はJavaScriptで異なる時間を取得mはなぜ????

+3

のようにコードを変更するよりも、あなたのタイムゾーンを変更しない場合は、同じものを設定してみてください、タイムゾーンは、PHPやブラウザで異なっているようです。 –

+2

脇に: 'date( '2012-05-02 17:00:00')'は無意味で、文字列 ''2012-05-02 17:00:00'と同じです。 – deceze

答えて

0

あなたのPCは、PHPコードを実行しているサーバーとは異なるタイムゾーンに設定されている必要があります。

PHPの日付/時刻はサーバーの設定を使用して計算され、JavaScriptの日付/時刻はクライアントのPC設定を使用して計算されます。

0

javascriptはお使いのブラウザによって異なります。あなたは、あなたのjavascriptで日付形式を解読する方がよいでしょう。別のブラウザで別の日付を取得します。

1

異なるタイムゾーンを除いて、同じ時刻が表示されています。

PHP側ではGMT時間があり、JavaScript側ではインド時間があります。

あなたはインド出身です。タイムゾーンの概念を理解し、タイムゾーン情報またはGMT/UTC時間で時刻を保存するだけです。このようにして、異なるタイムゾーンのタイムスタンプを間違って使用する問題を回避する必要があります。このような時刻をユーザーのタイムゾーンに適した形式で表示することは、そのタイムゾーンが生成されたタイムゾーンを知っていれば自明です。

1

あなたは

<script type="text/javascript"> 
     var d = new Date(); 
     var offset = d.getTimezoneOffset(); 
     document.write('My Javascript unix time stamp --'+new Date(Number(<?php echo (intval($mytimstamp));?> + offset*60)*1000)); 
</script>