我在html中有类型为datetime-local的输入,并且min应该是带有php的数据对象,并且我看不到为什么它不起作用,其中带有php脚本的html是:
<input name="fechalimite" min="<?php
date_default_timezone_set("America/New_York");
$now = date("Y-m-d H:i:s") ;
echo date('Y-m-d H:i',strtotime(' +20 minutes',strtotime($now)));
?>" type="datetime-local" class="form-control" id="fechalimite">
最小值应为纽约+ 20m的当前数据,但不起作用
答案 0 :(得分:0)
首先,我建议将HTML与PHP逻辑分开。这个问题超出您的讨论范围,但这会使内容很多更加容易阅读。
使用您提供的以下代码,我可以确定20分钟后的时间(按照您在问题中所指定的时间):
<?php
date_default_timezone_set("America/New_York");
$now = date("2018-07-06 16:25:02");
$diff = "+20 minutes";
$then = date('Y-m-d H:i:s', strtotime($diff, strtotime($now)));
echo "Now: " . $now . "\n";
echo "Then: " . $then . "\n";
// Output
// Now: 2018-07-06 16:25:02
// Then: 2018-07-06 16:45:02
现在在您的HTML中实现此功能
<input name="fechalimite" min="<?php echo $then ?>" type="datetime-local" class="form-control" id="fechalimite">
您会在浏览器中注意到,这将呈现:
<input name="fechalimite" min="2018-07-06 16:45:02" type="datetime-local" class="form-control" id="fechalimite">
您不能如问题中所述使用“带有PHP的数据对象”,因为在您所处的情况下,PHP只会将数据/标记字符串呈现给浏览器。如果要使用用户输入/交互/事件执行任何验证任务,则需要输出日期字符串(如您和我在上面所述)并通过JavaScript进行消化。
JavaScript信息不在您的问题范围内,但是您可以在此处阅读有关JavaScript中的Date
对象/类的信息:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date
答案 1 :(得分:0)
像这样使用日期格式Y-m-d\TH:i
:
<?php
date_default_timezone_set("America/New_York");
$now = date("Y-m-d H:i:s") ;
$min = date('Y-m-d\TH:i', strtotime('+20 minutes', strtotime($now)));
?>
<input name="fechalimite" min="<?php echo $min; ?>" value="<?php echo $min; ?>" type="datetime-local" class="form-control" id="fechalimite" />