layui laydate怎么将选择的日期转为UTC国际标准时间

星宇吖_1346

星宇吖_1346

2026-10-29

507人浏览

原创

laydate的value字符串是本地时区格式化结果,不含时区标识,非UTC时间;须用new Date(value).toISOString()转为标准UTC字符串,range模式需分别处理起止时间。

layui laydate怎么将选择的日期转为utc国际标准时间

不能直接用 laydate 内置方法转 UTC,它所有时间处理都基于本地时区;必须手动解析输入值、转成 Date 实例后调用 toISOString() 截取 —— 否则会把本地时间误当 UTC 存储或传输。

为什么 value 字符串不是 UTC 时间

laydate 的 done 回调返回的 value(如 "2026-10-02 06:03:00")是按用户本地时区格式化的字符串,不带时区标识。它不代表 UTC,也不等于服务器期望的 ISO 时间。直接传给后端或存入数据库,会导致时差错乱(比如北京时间上午 9 点存成 "2026-10-02T09:00:00",实际应是 "2026-10-02T01:00:00Z")。

  • 不要对 value 字符串做简单替换(如加 Z 或改 T),那是伪造 UTC
  • 不要用 new Date(value).toUTCString(),它返回的是可读字符串,不是标准 ISO 格式
  • 若 type: 'date',value 只有年月日,需补 " 00:00:00" 才能构造完整时间点

正确转为 UTC 的三步操作

核心是:先还原为本地时间点 → 转成毫秒时间戳 → 交给 Date.prototype.toISOString() 自动对齐 UTC。

  • 用 new Date(value) 解析 value 字符串(确保 value 非空且含完整时间,否则补零)
  • 调用 .toISOString(),它天然返回 YYYY-MM-DDTHH:mm:ss.sssZ 格式,精确到毫秒且带 Z
  • 如只需秒级精度,用 .toISOString().slice(0, 19) + "Z"(避免毫秒部分干扰)

示例:

深蓝色网站后台管理系统layui框架模板-AdminPro
深蓝色网站后台管理系统layui框架模板-AdminPro

一款深蓝色网站后台管理系统layui框架模板

下载
done: function(value, date, endDate) {
  if (!value) return;
  // 补全时间部分(type: 'date' 时 value 不含时分秒)
  const fullValue = value.includes(':') ? value : value + ' 00:00:00';
  const utcStr = new Date(fullValue).toISOString().slice(0, 19) + 'Z';
  console.log(utcStr); // e.g. "2026-10-02T06:03:00Z"
}

range 模式下要分别处理起止时间

双日期场景中,value 是类似 "2026-10-02 - 2026-10-05" 的字符串,dates 参数(v5.1+)更可靠:

  • 优先用 dates[0] 和 dates[1](两个 Date 对象),直接调 .toISOString()
  • 若用老版本,需 value.split(' - ') 得到两段字符串,每段都补 ' 00:00:00' 再解析
  • 注意:分隔符必须是 ' - '(空格+短横+空格),否则 split 失败

服务端接收前最容易忽略的一点

toISOString() 生成的是带 Z 的完整 UTC 时间,但某些后端框架(如 Java 的 LocalDateTime)会拒绝带 Z 的字符串。此时应传 .toISOString().replace('Z', '+00:00'),或由后端统一用 Instant.parse() 处理 —— 别在前端去掉 Z 后当成本地时间解析。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
python是前端还是后端
python是前端还是后端

Python属于前端也属于后端,其灵活性和丰富的生态系统使得开发人员能够在不同的领域中灵活运用。本专题为大家提供python相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.11

2723

5

前端如何实现即时通讯
前端如何实现即时通讯

实现即时通讯的方法有WebSocket、Long Polling、Server-Sent Events、WebRTC等等。详细介绍:1、WebSocket,它可以在客户端和服务器之间建立持久连接,实现实时的双向通信,前端可以使用 WebSocket API来创建WebSocket连接,并通过发送和接收消息来实现即时通讯;2、Long Polling,是一种模拟实时通信的技术等等。

2023.10.09

5923

6

前端和后端的区别
前端和后端的区别

前端关注的是用户界面的设计和交互,而后端则注重数据处理和逻辑控制。想了解更多前端后端的相关内容,可以阅读本专题下面的文章。

2024.03.19

6870

13

php和前端的关联介绍
php和前端的关联介绍

php既可以作为前端语言,也可以作为后端语言。想了解更多php和前端的相关内容,可以阅读本专题下面的文章。

2024.03.22

6638

10

前端外包工作内容有哪些
前端外包工作内容有哪些

前端外包工作内容包括:1. 网站和应用程序开发;2. 用户界面和交互设计;3. 用户体验优化;4. 设计和视觉开发;5. 跨浏览器兼容性;6. 性能优化;7. 维护和更新;8. 项目管理和沟通。想了解更多前端的相关内容,可以阅读本专题下面的文章。

2024.05.22

943

5

json数据格式
json数据格式

JSON是一种轻量级的数据交换格式。本专题为大家带来json数据格式相关文章,帮助大家解决问题。

2023.08.07

2195

5

json是什么
json是什么

JSON是一种轻量级的数据交换格式,具有简洁、易读、跨平台和语言的特点,JSON数据是通过键值对的方式进行组织,其中键是字符串,值可以是字符串、数值、布尔值、数组、对象或者null,在Web开发、数据交换和配置文件等方面得到广泛应用。本专题为大家提供json相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.23

3482

1

jquery怎么操作json
jquery怎么操作json

操作的方法有:1、“$.parseJSON(jsonString)”2、“$.getJSON(url, data, success)”;3、“$.each(obj, callback)”;4、“$.ajax()”。更多jquery怎么操作json的详细内容,可以访问本专题下面的文章。

2023.10.13

1176

3

go语言处理json数据方法
go语言处理json数据方法

本专题整合了go语言中处理json数据方法,阅读专题下面的文章了解更多详细内容。

2025.09.10

4019

7

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
ThinkPHP配置开发与CMS后台实战
ThinkPHP配置开发与CMS后台实战

共87课时 | 13.1万人学习

第二十三期_综合实战
第二十三期_综合实战

共89课时 | 11.4万人学习

Layui 快速入门精讲
Layui 快速入门精讲

共5课时 | 1.6万人学习