2017-02-12 2 views
1

Когда я использую getDate() в своем php-файле, я всегда получаю время, которое находится на 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. Теперь я хочу использовать «datatime» в своем php-коде

<?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-02-12 13:54

Или вы можете использовать PHP DateTime объект:

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

Выход:

2017-02-12 16:19

EDIT:

Вот список поддерживаемых PHP часовых поясов: http://php.net/manual/en/timezones.php

Таким образом, ваш часовой пояс будет "Азия/Дакка" ,

+0

Если я получу время Дакка Бангладеш Какой часовой пояс я выбираю. –

+0

@ A.ANoman Я отредактировал свой ответ. Ваш часовой пояс «** Азия/Дакка **» – JazZ

+0

@ A.ANoman Решил ли ваш вопрос? – JazZ

2

Вы не можете этого сделать. PHP-скрипт запускается в yor sever для отправки в браузер пользователей, после этого запустите браузер javascript-код на компьютере пользователя.

Если все, что вам нужно, это переменное с датой, используйте дату() функции в PHP с правильной Params Например:

$today = date("Ymd"); 

в defult возвращение PHP номер месяца в 2-х цифрах.

Смежные вопросы