在我網站上每個頁面上包含的navbar.php文件中,我想爲每個用戶設置時區。我發現了一個很好的js腳本,對我來說非常合適。我可以迴應這個變量,它能正確識別出「歐洲/布魯塞爾」是我的時區。現在我希望能夠將此時區變量設置爲PHP中的時區。這是我目前在我的navbar.php文件,但它不工作的代碼片段..傳遞javascript變量來設置PHP中的時區
<script type="text/javascript" src="domain/js/jstz.js"></script>
<script>
$.ajax({
var tz = jstz.determine();
var tzname = tz.name();
'url': 'navbar.php',
'type': 'POST',
'data': 'timezone=' + tzname
});
</script>
<?php
$usertimezone = $_POST['timezone'];
date_default_timezone_set($usertimezone);
?>
任何人誰可以看看有什麼不妥之處,幫助我嗎?謝謝!
你意識到PHP運行在服務器上(它加載整個初始頁面的腳本) ,JS在客戶端上運行?這段php代碼在js代碼有機會運行之前就已經消失/被破壞了,所以你正在訪問一個未定義的$ _POST參數,並將你的時區設置爲'null'。 –
也許這個答案會幫助你http://stackoverflow.com/questions/4746249/get-user-timezone :) –
感謝您的評論@MarcB。我對這一切都很陌生,所以我仍然在學習。你知道另一種方式我可以做到這一點嗎?我只需要使用JS變量在PHP中設置時區。 –