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

DateTimePicker功能异常求助:编辑时时间默认值始终为00:00

解决DateTimePicker仅日期生效、时间始终为00:00的问题

看起来你遇到的是DateTimePicker插件没有正确读取模型中DateTime值时间部分的问题,我来帮你一步步排查解决:

1. 确认模型与数据库的时间数据完整性

首先要确保两个核心点:

  • 你的Afspraken.Datumafspraak字段是**DateTime类型**(不是Date类型),如果是Date类型,本身就会丢失时间维度的信息;
  • 数据库中对应的记录确实包含非00:00的时间值,并且在后端同步到模型时没有被截断。你可以在后台代码里打印这个值(比如Debug.WriteLine(model.Afspraken.Datumafspraak)),确认输出的是完整的yyyy-MM-dd HH:mm:ss格式。

2. 强制TextBoxFor输出完整的日期时间格式

默认情况下,ASP.NET MVC的TextBoxFor绑定DateTime时,可能只输出日期部分。你需要显式指定格式,让input的value包含时间信息:

<div class="form-group">
    @Html.LabelFor(m => m.Afspraken.Datumafspraak)
    @Html.TextBoxFor(m => m.Afspraken.Datumafspraak, "{0:yyyy-MM-dd HH:mm}", new { @class = "form-control datetimepicker" })
</div>

这里的"{0:yyyy-MM-dd HH:mm}"会让input渲染出类似2024-05-20 14:30的value,插件才能正确读取到时间部分。

3. 检查DateTimePicker的初始化配置

你已经添加了Timepicker插件,但要确保初始化时开启了时间选择功能。比如用jQuery初始化的话,需要包含时间相关的关键选项:

$(document).ready(function() {
    $('.datetimepicker').datetimepicker({
        format: 'YYYY-MM-DD HH:mm', // 和input的格式保持一致
        timePicker: true, // 必须开启这个选项,否则插件只会处理日期
        showTimePicker: true,
        timePickerIncrement: 15, // 可选:设置时间步长,比如15分钟
        // 其他你需要的配置项
    });
});

如果初始化时没设置timePicker: true,插件只会识别日期部分,时间就会默认显示为00:00。

4. 验证前端渲染的input值

打开页面的开发者工具(F12),查看这个input标签的value属性,确认它是完整的日期时间字符串,而不是只有日期。如果value只有日期(比如2024-05-20),那插件肯定会把时间设为00:00,这时候就要回到步骤2检查格式设置是否生效。

5. 给模型添加格式特性(可选优化)

在模型的Datumafspraak字段上添加DisplayFormat特性,确保编辑模式下自动应用正确的格式:

public class YourModel {
    // 其他字段...
    [DisplayFormat(DataFormatString = "{0:yyyy-MM-dd HH:mm}", ApplyFormatInEditMode = true)]
    public DateTime Datumafspraak { get; set; }
}

这个特性会让MVC在渲染编辑控件时自动套用指定格式,避免手动写格式字符串的麻烦。

按照这些步骤排查,应该就能让DateTimePicker正确显示模型中的时间部分了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 08:42:02