У меня есть HTML форма с двумя входамиПолучить разницу дат формы
<input type="datetime" name="start" id="start" ></input>
<input type="datetime" name="stop" id="stop" ></input>
и send.php, которые почт мне содержимое формы.
В send.php Я хочу рассчитать разницу между днями между STOP и START, как в разнице = STOP - START. Если разница между временами положительна и больше 1 часа, то я хочу добавить один дополнительный день.
If START = 02/01/2014 14:58:21
If STOP = 07/01/2014 14:59:21
затем выход = 5 дней
If START = 02/01/2014 14:58:21
If STOP = 07/01/2014 14:59:21
затем выход = 6 дней
Как я могу добиться этого?
Send.php должен отправить по почте результат.
Так что в моем .html я что-то вроде
<form action="send.php" method="get">
<div id="datetimepicker" class="input-append date">
<input type="datetime" name="START" id="START" ></input>
<span class="add-on">
<i data-time-icon="icon-time" data-date-icon="icon-calendar"></i>
</span>
</div>
<div id="datetimepicker" class="input-append date">
<input type="datetime" name="STOP" id="STOP" ></input>
<span class="add-on">
<i data-time-icon="icon-time" data-date-icon="icon-calendar"></i>
</span>
</div>
</form>
and my send.php is
<?php
@$pfw_ip= $_SERVER['REMOTE_ADDR'];
@$START= $_GET['START'];
@$STOP= $_GET['STOP'];
@$email= addslashes($_GET['email']);
$_start = new DateTime($_POST['start']); // or new DateTime($_POST['start']);
$_stop = new DateTime($_POST['stop']);// or new DateTime($_POST['stop']);
$interval = $_start->diff($_stop);
$to = "[email protected]";
$subject = "Calculator";
$headers = "From: $email\r\n";
$headers .= "Reply-To: $email\r\n";
$headers .= "Return-Path: $email\r\n";
$headers = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type:text/html;charset=iso-8859-1" . "\r\n";
$message = "<html><body style=\"font-family:Calibri; font-size:14.5px;\">";
$message .= " result between $STOP and $START is ....days
ID: $pfw_ip <br/>";
$message .= "</body></html>";
mail($to,$subject,$message,$headers);
?>
the error i get now is Catchable fatal error: Object of class DateInterval could not be converted to string in
Много добрых спасибо, но если я ставлю этот код в HTML форме я потребуется р ass $ interval как переменная send.php, как это сделать? Плюс datetime1 и datetime2 являются двумя полями ввода, поэтому я не могу объявить их как статические ... –
Назначьте ему переменную, что-то вроде '$ diff = $ interval-> format ('% a days');' Вы можете пройти '$ diff' для вашего send.php. Что касается вашего другого запроса, я добавил коды в комментарии рядом с ними. –
Дорогой ох :). Я добавил свой полный код в исходное сообщение –