2017-02-12 4 views
1

私のPHPファイルにgetDate()を使用すると、システム時間より5時間遅れてしまうことがあります。だから私はシステムからJavaScriptを取得する時間を使用します。私のコードは以下ですJavaScriptから同じファイルのphpにデータを渡す

<script type="text/javascript"> 

Date.prototype.today = function() { 
    return ((this.getDate() < 10)?"0":"") + this.getDate() +"."+(((this.getMonth()+1) < 10)?"0":"") + (this.getMonth()+1) +"."+ this.getFullYear(); 
} 

Date.prototype.timeNow = function() { 
    return ((this.getHours() < 10)?"0":"") + this.getHours() +":"+ ((this.getMinutes() < 10)?"0":"") + this.getMinutes() +":"+ ((this.getSeconds() < 10)?"0":"") + this.getSeconds(); 
} 

var newDate = new Date(); 
var datetime = newDate.today() + " " + newDate.timeNow(); 
document.write(datetime); 

</script> 

これはPHPファイルです。今私は私のPHPコードで "datatime"を使用したい

<?php 
//Here I use datetime 
?> 

どのように私はそれを使用しますか?前もって感謝します。

+1

JavaScriptはクライアント側で実行されるため、クライアントの時刻が取得されます。 PHPはサーバ上で動作し、したがってサーバ時間を取得します。これらの時間は両方とも、彼らの文脈において正しいものでなければならない。クライアントがタイムゾーンをいつでも変更できる場合、クライアントの時刻をサーバーに保存する必要があると考える理由を評価する必要があります。 – apokryfos

+0

PHPで時刻を設定してJavaScriptに渡すのはなぜですか?今あなたは私たちのためにPHPの時間をアヤックスする必要があります – mplungjan

+0

PHPは、クライアント側PHPは、あなたのPHPコード内の特定のタイムゾーンを設定しないで実行中にクライアント側ですか? [date_timezone_set](http://php.net/manual/en/datetime.settimezone.php) – hassan

答えて

3

タイムゾーンをdate_default_timezone_set()に設定しないのはなぜですか(タイムゾーンはグローバルに設定されます)。

<?php 
    date_default_timezone_set('Indian/Mauritius'); 
    $date= date('Y-m-d H:i'); 
    echo $date; 
?> 

出力:

2017年2月12日13時54分

それとも、使用できるPHP DateTimeオブジェクト:

$date = new DateTime(); 
$date->setTimeZone(new DateTimeZone("Asia/Dhaka")); 
echo $date->format('Y-m-d H:i'); 

出力:

2017年2月12日16時19分

編集:ここではPHPのリストがタイムゾーンサポートされている

:だからhttp://php.net/manual/en/timezones.php

を、あなたのタイムゾーンは "アジア/ダッカ" になります。

+0

私は時間がある場合ダッカバングラデシュ私が選択するタイムゾーン。 –

+0

@AANoman私は自分の答えを編集しました。あなたのタイムゾーンは「** Asia/Dhaka **」 – JazZ

+0

@ A.ANomanあなたの質問は解決しましたか? – JazZ

2

これはできません。 phpスクリプトは、ユーザーブラウザに送信するために、ブラウザでは、ユーザーのコンピュータでjavacriptコードを実行した後、 を実行します。あなたが必要とするすべての日付の変数がある場合

は、例えば正しいのparamsとPHPで日付()機能を使用します。

$today = date("Ymd"); 

defult PHPのリターン月の数で2桁で。

関連する問題