You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将SQLServer的datetime数据赋值给datetime-local输入框

问题原因
  • HTML标准中datetime-local类型的输入框对value属性的格式有严格要求,必须为日期T时间的格式,其中日期为YYYY-MM-DD,时间为HH:mm(也可扩展为HH:mm:ss),日期和时间之间用大写字母T连接,不允许使用空格分隔,也不能携带毫秒后缀。
  • 你从SQL Server取出的时间格式为2021-08-10 23:59:00.000,不符合上述格式要求,因此浏览器无法识别,输入框就会显示为空。
解决方案

只需要在输出到value属性前,用PHP把数据库取出的时间转换为符合要求的格式即可,提供两种常用实现方式:

  1. 用date+strtotime快速转换
    代码如下:
<?php echo date('Y-m-d\TH:i', strtotime($row['DurationStart'])); ?>

注意:原代码中$row[DurationStart]缺少数组键的引号,修正为$row['DurationStart']可避免PHP抛出未定义常量的警告。

  1. 用DateTime类实现(兼容性更强,避免特殊时间格式下strtotime解析失败)
    代码如下:
<?php
$startTime = new DateTime($row['DurationStart']);
echo $startTime->format('Y-m-d\TH:i');
?>

修改后的完整input标签代码:

<input type="datetime-local" id="dateStart" name="dateStart" value="<?php
$startTime = new DateTime($row['DurationStart']);
echo $startTime->format('Y-m-d\TH:i');
?>">
补充说明
  • 如果你的业务需要保留秒级精度,可以把格式字符串改为Y-m-d\TH:i:s,主流现代浏览器都支持该格式。
  • 若存在时区差异,可在格式化前调用DateTime::setTimezone()方法调整到对应时区即可。

内容的提问来源于stack exchange,提问作者Amenadiel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 07:09:02