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

如何将发货日期时间输入框默认值设为用户时区的当前时间

实现方案

1. 调整服务端代码

先去掉服务端给DateShipped赋值默认值的逻辑,避免服务端时区的时间覆盖前端赋值的用户本地时间:

public IActionResult OnGet()
{
    TransloadingDetail = new(); 
    // 移除DateShipped = DateTime.Now的赋值逻辑
    return Page();
}

2. 前端JS赋值本地时间

asp-for绑定DateTime类型时,默认会给input生成type="datetime-local"属性,该类型的输入框要求值的格式为YYYY-MM-DDThh:mm,我们只需要把用户本地的当前时间格式化为该格式后赋值即可。

补充说明:你之前对new Date()的理解存在偏差,new Date()本身是基于用户设备本地时区创建的时间对象,仅当调用toUTCString()等专门方法时才会返回UTC时间,直接取本地时间的年月日时分即可满足需求。

原生JS实现代码:

// 页面加载完成后执行
document.addEventListener('DOMContentLoaded', function() {
    // 获取当前本地时间
    const now = new Date();
    // 格式化时间为datetime-local要求的格式,自动补前导零
    const year = now.getFullYear();
    const month = String(now.getMonth() + 1).padStart(2, '0');
    const day = String(now.getDate()).padStart(2, '0');
    const hours = String(now.getHours()).padStart(2, '0');
    const minutes = String(now.getMinutes()).padStart(2, '0');
    const localDatetime = `${year}-${month}-${day}T${hours}:${minutes}`;
    // 赋值给输入框,asp-for生成的id为TransloadingDetail_DateShipped
    document.getElementById('TransloadingDetail_DateShipped').value = localDatetime;
});

jQuery实现代码(如果项目已引入jQuery):

$(function() {
    const now = new Date();
    const year = now.getFullYear();
    const month = String(now.getMonth() + 1).padStart(2, '0');
    const day = String(now.getDate()).padStart(2, '0');
    const hours = String(now.getHours()).padStart(2, '0');
    const minutes = String(now.getMinutes()).padStart(2, '0');
    const localDatetime = `${year}-${month}-${day}T${hours}:${minutes}`;
    $('input[name="TransloadingDetail.DateShipped"]').val(localDatetime);
});

可选补充:服务端接收后的处理

如果你的业务需要存储UTC标准时间,拿到前端提交的DateShipped后,可以调用DateTime.SpecifyKind(TransloadingDetail.DateShipped, DateTimeKind.Local).ToUniversalTime()转为UTC时间再存储,避免跨时区使用时出现时间混乱。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 01:39:00