2017-02-12 100 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?現在你將不得不Ajax的時間到PHP爲我們未知的原因 – mplungjan

+0

JavaScript是客戶端,而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

@ A.ANoman我編輯了我的答案。你的時區是「**亞洲/達卡**」 – JazZ

+0

@ A.ANoman它解決了你的問題嗎? – JazZ

2

你不能那樣做。 在運行瀏覽器之後,用戶計算機中的JavaScript代碼將運行在瀏覽器中的php腳本發送給用戶瀏覽器, 。在2個位數

$today = date("Ymd"); 

在defult PHP返回月份數:

如果你需要的是日期變量,可以使用日期()函數 PHP中的正確PARAMS例如。