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

JavaScript如何实现数据库datetime与HTML input datetime格式互转

双格式双向转换最优方案

分无依赖原生实现和轻量库实现两种可选,均已兼容时区处理,可避免格式不匹配报错:

无第三方依赖原生JS方案

数据库UTC格式(2021-09-25T17:04:53.177Z)转HTML datetime-input支持格式

function utcToHtmlDatetime(utcStr) {
  const date = new Date(utcStr)
  const pad = num => String(num).padStart(2, '0')
  return `${date.getFullYear()}-${pad(date.getMonth()+1)}-${pad(date.getDate())}T${pad(date.getHours())}:${pad(date.getMinutes())}`
}

调用示例:utcToHtmlDatetime('2021-09-25T17:04:53.177Z') 会自动根据用户本地时区输出符合要求的2021-09-25Txx:xx格式字符串

HTML datetime-input格式转数据库UTC格式

function htmlDatetimeToUtc(htmlStr) {
  return new Date(htmlStr).toISOString()
}

调用示例:htmlDatetimeToUtc('2021-09-22T14:04') 直接输出和数据库格式完全匹配的带Z后缀UTC时间字符串

轻量库方案(项目允许引入依赖时推荐,边界情况处理更完善)

使用仅2KB大小的dayjs库实现,代码更简洁:

转HTML输入格式

import dayjs from 'dayjs'
const utcToHtml = (utcStr) => dayjs(utcStr).format('YYYY-MM-DDTHH:mm')

转数据库存储格式

const htmlToUtc = (htmlStr) => dayjs(htmlStr).toISOString()

注意事项

  • 不要直接对原始时间字符串做切片处理,会忽略时区偏移,导致时间偏差
  • 转换过程会自动处理本地时区和UTC的时间差,和HTML datetime-input组件的原生逻辑完全匹配

内容的提问来源于stack exchange,提问作者Harsha M V

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 19:09:03