如何设置输入类型的值' datetime-local'?

时间:2016-11-28 11:38:14

标签: php html datetime datetime-format

我试过了:

0

如何使用数据库中的数据设置此输入字段的值?
它不起作用!!
我也需要编辑。
或者我应该使用其他类型的输入? $行['时间'];来自数据库!

12 个答案:

答案 0 :(得分:15)

我不知道$row['Time']中的内容,但它应该如下:

<强>定义

  

RFC 3339 中定义的有效日期时间   其他资格:

     
      
  • 日期/时间语法中的字面字母T和Z必须始终为大写
  •   
  • 日期全部生产被定义为四个或更多个数字,表示大于0的数字
  •   
     

<强>实施例

     
      
  • 1990-12-31T23:59:60Z
  •   
  • 1996-12-19T16:39:57-08:00
  •   

<强>解决方案

要在PHP中创建 RFC 3339 格式,您可以使用:

echo date('Y-m-d\TH:i:sP', $row['Time']);

或以其他方式:

echo date("c", strtotime($row['Time']));  

或者如果您更喜欢客观风格:

echo (new DateTime($row['Time']))->format('c');

在您的代码中

因此,在您的代码中,它将如下所示:

<input type="datetime-local"  value="<?php echo date('Y-m-d\TH:i:sP', $row['Time']); ?>" class="date" name="start" REQUIRED>

<input type="datetime-local"  value="<?php echo date("c", strtotime($row['Time'])); ?>" class="date" name="start" REQUIRED>

<强>手册

答案 1 :(得分:6)

这很简单就是为我工作 首先将您的php值转换为此格式

 <?php  $datetime = new DateTime($timeinout[0]->time_in);   ?>

然后是html输入元素的值 使用这种格式

<input type="datetime-local" id="txt_time_in" placeholder="Time In" name="timein" value = "<?php echo $datetime->format('Y-m-d\TH:i:s'); ?>" class="form-control" /> 

这会将您的值设置为输入元素

答案 2 :(得分:3)

您可以使用

date('Y-m-d\TH:i'); //Example result: '2017-01-01T01:01'

如果使用\ T而不是T(不工作)

date('Y-m-dTH:i'); //Example result: '2017-01-01UTC01:01'

答案 3 :(得分:2)

使用<form>提交<input type="datetime-local">

您将获得的值格式如下所示。

  

2019-09-06T00:21

要在输入类型框中设置新值。

您必须使用:

date('Y-m-d\TH:i', strtotime($exampleDate)) //2019-08-18T00:00

解决方案示例

$exampleDate = "2019-08-18 00:00:00";//sql timestamp
$exampleDate = strtotime($exampleDate);
$newDate = date('Y-m-d\TH:i', $exampleDate);

$exampleDate = "2019-08-18 00:00:00";//sql timestamp
$newDate = date('Y-m-d\TH:i', strtotime($exampleDate));

如果您不使用strtotime(),则会收到错误消息

  

注意:遇到格式不正确的数值


已测试

 - $exampleDate = 2019-08-18 00:00:00 ;
 - //Not Working - output(1970-01-01T01:33:39)
 - <?php echo date('Y-m-d\TH:i:s', $exampleDate);?>
 - //Not Working - output(1970-01-01T01:33:39+01:00)
 - <?php echo date('Y-m-d\TH:i:sP', $exampleDate);?>
 - //Not Working - output(2019-08-18T00:00:00+02:00)
 - <?php echo date("c", strtotime($exampleDate));?>
 - //Not Working - output(2019-09-23T19:36:01+02:00)
 - <?php echo (new DateTime($row['Time']))->format('c');?>
 - //Working Perfect - output(2019-08-18T00:00:00)
 - <?php echo date('Y-m-d\TH:i:s', strtotime($exampleDate));?> 

答案 4 :(得分:1)

Karol Gasienica的答案是一个很好的解释,但即使在他们的回复中,我也不知何故

date('Y-m-d\TH:i:s', $row['Time']); //Gives me 1970-01-01 00:00
date('Y-m-d\TH:i:sP', $row['Time']); //Gives me no display
date("c", strtotime($row['Time'])); //No display too

这对我有用的是

$t = $row['Time'];
date('Y-m-d\TH:i:s', strtotime($t)); // This got it perfectly

但是由于解释,我仍然投票赞成。

答案 5 :(得分:1)

对我来说最简单的方法是

<input  type="datetime-local"  value="<?= str_replace(' ', 'T', $date) ?>" name="date"  required />

答案 6 :(得分:0)

$tripid=$_REQUEST['tripid'];
$sql="SELECT * FROM tripdetails WHERE trip_id='".$tripid."'";
$trpresult=mysqli_query($connect,$sql);
  if(mysqli_num_rows($trpresult)==1)
    {
      $trpdetails=mysqli_fetch_assoc($trpresult);
    }
 $trpstartdate = substr_replace($trpdetails['trip_start_date'],T,11,0);

 $string = preg_replace('/\s+/', '', $trpstartdate);

This is Html part

<input type="datetime-local" name="trip_start_date" id="cal" value="<?php echo $string?>">

答案 7 :(得分:0)

这会将日期时间从数据库转换为本地日期时间

str_replace(" ","T",substr_replace($string ,"", -3))

答案 8 :(得分:0)

截至2019年,以上解决方案均不适用于使用Google Chrome Version 78.0.3904.70 (Official Build) (64-bit)

对我有用的是

<input type="datetime-local" value="2017-06-13T13:00">

如您所见,格式为2017-06-13T13:00Y-m-dTH:i

从PHP开始,您可以这样做。

<input type="datetime-local" value="<?php echo Date('Y-m-d\TH:i',time()) ?>">

希望这可以节省某人的时间。 :)

答案 9 :(得分:0)

更好地使用时区功能

function getCurrentDateTime(){
    $date = new DateTime();
    $date->setTimezone(new DateTimeZone('GMT+6')); //Time Zone GMT +6
    $dt= $date->format('Y-m-d\TH:i:s');
    return $dt;
}

答案 10 :(得分:0)

尝试一下:

$and

enter image description here

答案 11 :(得分:-1)

试试看。我在 Bootstrap 4 中得到了。(谷歌翻译:prueba con eso,a mi me sale con eso en Bootstrap 4。)

imageCache.setObject(downloadedImage, forKey: url.absoluteString... // cache the image