Похоже, что вы хотите, чтобы PHP записал файл с результатом переменной часового пояса, то есть, чтобы это был текстовый файл с именем часового пояса в нем.
Возможно то, что вы видите, это PHP запись этой строки JavaScript, т.е. <script>document.writeln(timezone);</script>
Верно?
Что происходит, PHP выполняет полностью перед JavaScript запущено. Ваш первый пример работает, потому что PHP выполняется, включая запись строки JavaScript, а затем JavaScript выполняется, включая эту строку, и вы видите результат.
То, что вы пытаетесь выполнить сделать во втором примере невозможно. PHP выполняется, включая запись этой строки JavaScript (в файл), а затем JavaScript выполняется, но, конечно, не в этом текстовом файле.
Вы можете найти два варианта: другой способ получить часовой пояс строго в PHP, или же получить его с помощью JavaScript, а затем использовать AJAX для запуска позже запуска PHP, то есть после того, как JavaScript имеет запустить.
РЕДАКТИРОВАТЬ
Ваш JavaScript будет получать часовой пояс, как и раньше. Затем он отправит это в отдельный файл, который выводит его:
var url = '..'; // url of a php file that JUST processes the file write
$.ajax({
type: "POST",
url: url,
data: {
'timezoneToPrint' : timezone
}
});
И в вашем другом PHP файле, который вы только что вызвали, теперь вы можете распечатать его в файл
if($_POST['timezoneToPrint']){
// ..write the file here, the timezone is in $_POST['timezoneToPrint']
}