Как добавить, например, 30 или 60 минут в определенное время [дубликаты]

0

У меня есть вход, где вы можете выбрать время между 00:00 - 24:00 (отображается в "Utleid" и 2 переключателя, где вы можете выбрать 30 минут или 60 минут.

Я хочу, чтобы ввод, где вы можете написать свое время и + это с 30 или 60 минут в зависимости от того, что они выбирают

так, например, скажем, я выбрал "30" и набрал 12:00, я хочу, чтобы он вставлялся в "inntid" "12:30".

Я пытался что-то сделать, но это не сработало: P

БАЗА ДАННЫХ: Изображение 174551

HTML:

<div class="tid">
<label class="container"><span class="tidtekst">30m</span>
  <input type="radio" class="checked" name="tid" id="tid" value="30">
  <span class="checkmark"></span>
</label>
<label class="container"><span class="tidtekst">60m</span>
  <input type="radio" name="tid" value="60">
  <span class="checkmark"></span>
</label>
<input type="text" name="tid_custom" id="egentid" placeholder="Tid">
</div>


<h2 class="overskrift">Tiden klokka starter:</h2>
  <input type="time" id="utleidnar" name="utleidnar"
       min="00:00" max="24:00" required>

PHP:

$velgut = "SELECT utleid FROM utleie";
$velgtid = "SELECT tid FROM utleie";
$inntid = "INSERT INTO utleie (inntid) VALUES ('$velgut + $velginn')";

if (@$_POST["submit"] != "") {
    $baatnr = @$_POST["baatnr"];
    $fornavn = @$_POST["fornavn"];
    $etternavn = @$_POST["etternavn"];
    $tid = @$_POST["tid"];

    if ($tid == null) {
        $tid = @$_POST["tid_custom"];
    }

    $kr = @$_POST["kr"];

    if ($kr == null) {
        $kr = @$_POST["kr_custom"];
    }

    $utleidnar = @$_POST["utleidnar"];
}

$sql = "INSERT INTO utleie (utleid, inntid, baatnr, fornavn, etternavn, tid, kr)
VALUES ('$utleidnar', '', '$baatnr', '$fornavn', '$etternavn', '$tid', '$kr')";
  • 3
    I tried doing something but it didnt work - что вы пробовали?
  • 1
    php.net/manual/en/datetime.add.php
Показать ещё 3 комментария
Теги:

3 ответа

1
Лучший ответ

Я думаю, что вам нужно проанализировать значение в php. Попробуйте что-то вроде этого:

$timestamp = strtotime('12:00') + 30*60;
$time = date('H:i', $timestamp);
  • 0
    может не 30*60 (1800)
  • 0
    Спасибо! :)
1

Используйте встроенную в PHP функцию datetime для вычисления дополнительных 30 или 60 минут.

$utleidnar = '13:00';
$tid = 60;

$stime = DateTime::createFromFormat('H:i',$utleidnar);
$stime->add(new DateInterval('PT' . $tid . 'M'));
$inntid = $stime->format('H:i');
echo $inntid;  // this has the new value you want

Результаты в:

14:00

0

ты не можешь использовать mtkime?

$explodedTime = explode(':',$utleidnar);
$tid = abs($_POST['tid']);
$time = date('H:i', mktime($explodedTime[0],$explodedTime[1] + $tid,0));

Ещё вопросы

Сообщество Overcoder
Наверх
Меню