【问题标题】:How to add for example 30 or 60 minutes into a specific time [duplicate]如何将例如 30 或 60 分钟添加到特定时间 [重复]
【发布时间】:2019-03-08 10:56:37
【问题描述】:

我有一个输入,您可以在其中选择 00:00 - 24:00 之间的时间(显示在“utleid”和 2 个单选按钮中,您可以选择 30 分钟或 60 分钟。

我想要输入,您可以在其中写下自己的时间,并根据他们的选择在 30 或 60 分钟内加上时间

例如,假设我选择“30”并输入 12:00,我希望它插入“inntid”“12:30”。

我尝试做某事,但没有成功:P

数据库:

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')";

【问题讨论】:

  • I tried doing something but it didnt work - 你尝试了什么?
  • 您对 SQL 注入持开放态度,并且您使用 @IMO 是多余的
  • @RamRaider $inntid = "INSERT INTO utleie (inntid) VALUES ('$velgut + $velginn')";
  • 据我所知,$velginn 甚至没有在上面的代码中定义。

标签: php mysql


【解决方案1】:

我认为你需要解析 php.ini 中的值。试试这样的:

$timestamp = strtotime('12:00') + 30*60;
$time = date('H:i', $timestamp);

【讨论】:

  • 可能不是30*60 (1800)
  • 谢谢! :) !
【解决方案2】:

使用 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

【讨论】:

    【解决方案3】:

    你不能使用 mtkime 吗?

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

    【讨论】:

      猜你喜欢
      • 2020-07-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-17
      • 2019-12-20
      • 2014-06-13
      • 2011-10-19
      • 2019-10-29
      相关资源
      最近更新 更多