@thedexploit
Сайтами маюсь

С формой отправляю время заполнения. Как добавить 2 часа к времени сервера?

Добрый день.
Я собираю заказы с лендинга и вместе с заказом приходит время. Но из-за часовых поясов мне время указывает на 2 часа раньше.
Хочу сделать, чтобы в форме уже сразу высчитывало время.
Нашел примерочные коды но совместить не могу, ибо вот в php не силен вообще))
Для получения времени использую переменную senddate
Код формы ниже.
<?php
	$myaddr = "test@mail.ru";
$senddate = date("d.m.Y H:i:s"); 
$ref = $_SERVER['HTTP_REFERER'];
$result=parse_url($ref);
parse_str($result['query'],$params);

if (isset($params['utm_source']) || isset($params['utm_term']) || isset($params['utm_region']) || isset($params['utm_campaign'])){
	$utm .= "<p><strong>Источник:</strong> ".$params['utm_source'];
	$utm .= "<p><strong>Кл. фраза:</strong> ".$params['utm_term'];
	$utm .= "<p><strong>Регион:</strong> ".$params['utm_region'];
	$utm .= "<p><strong>Кампания:</strong> ".$params['utm_campaign'];
} else {
	$utm .= "<p><strong>, Меток нет</strong>";
}

if (isset($_POST['number']) && $_POST['name']&& $_POST['email'] == 0){
	$headers  = "From: заявка с сайта \r\n";
	$headers .= "MIME-Version: 1.0\r\n";
   	$headers .= "Content-Type: text/html;charset=utf-8 \r\n";
	
	$number = $_POST['number'];
	$name 	= $_POST['name'];
	$email	= $_POST['email'];
	$loc	= $_POST['loc'];
	
	$subj = "C формы: заявка с сайта";
	$text .= "<p><strong>Телефон:</strong> ".$number;
	$text .= "<p><strong>, Имя:</strong> ".$name;
	$text .= "<p><strong>, Почта:</strong> ".$email;

	$text .= "<p><strong>, Дата и время:</strong> ".$senddate;
        $text .= $utm;
    $logger = $senddate.$text;
    $senderror = "error";
	
	mail($myaddr, $subj, $text, $headers);
	echo "<div style=\"background-image:url();background-position:top;margin-top:40px;\"></div><div style=\"width: 609px; height: 240px; color: #111111; font-family: 'PT Sans Narrow';
 font-size: 18px; line-height: 18px;\"><div style=\"margin: 20;border:1px dashed #282828;text-align:center;font-weight:bold;border-radius:8px;padding:10px;margin-left:300px;background:#fff;color:#309B18;line-height:26px;\"><p>Ваша заявка принята, Спасибо!</p></div></div>";
	$f = fopen("zayavkaLog.txt", "a");
	fwrite($f, "\r\n".$logger);
	fclose($f);
	} else {
	echo "Нет ПОСТА";
	$f = fopen("zayavkaLog.txt", "a");
	fwrite($f, "\r\n".$senderror);
	fclose($f);
} 
	?>


А вот чего я хочу добавить

echo $dt->format('d.m.Y H:i:s') . "\n";
$dt->modify("-1 hour");


Не спрашивайте про запятые в полях данных. Больная тема.
  • Вопрос задан
  • 182 просмотра
Решения вопроса 1
sergiks
@sergiks Куратор тега PHP
♬♬
$date = new DateTime();
$date->setTimezone( new DateTimeZone('+0300')); // тут ваш часовой пояс
echo $date->format('d.m.Y H:i:s') . "\n";
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Работайте в UTC, а в локальное время переводите только для отображения.
Ответ написан
Используйте date_default_timezone_set до вызова функций даты\времени.

В помощь: Список поддерживаемых временных зон.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы