0

0

layui laydate设置默认值 layui日期组件如何初始化时间

畫卷琴夢

畫卷琴夢

发布时间:2026-03-17 12:24:12

|

528人浏览过

|

来源于php中文网

原创

<p>laydate 的 value 必须严格匹配 format 格式,否则默认值不显示;range 模式需两端时间合法且分隔符为“ - ”;多实例需 each 遍历初始化,推荐用 new Date() 或 toISOString() 生成标准时间字符串。</p>

value 参数必须严格匹配 format 格式,否则默认值不显示

laydate 不会自动解析或容错你传的字符串时间——比如 format: 'yyyy-mm-dd hh:mm:ss' 时,value: '2026-03-16' 就无效;必须写成 value: '2026-03-16 00:00:00' 才能渲染成功。

常见错误现象:控件打开后空白、placeholder 还在、控制台无报错但就是不填值。

  • new Date() 最省心,它天然适配所有 type'date''datetime''time'
  • 若用字符串,建议统一用 toISOString().slice(0, 19).replace('T', ' ') 生成标准格式(如 "2026-03-16 21:51:00"
  • PHP 模板中嵌入时注意引号转义:value: "{:date('Y-m-d H:i:s', time())}"

range 模式下设默认时间段,别只靠 value 字符串拼接

想让范围选择器一打开就默认选中“今天 00:00:00 至 23:59:59”,光写 value: '2026-03-16 00:00:00 - 2026-03-16 23:59:59' 是不够的——laydate 要求两端时间都合法且符合 format,且中间分隔符必须是空格+短横+空格(' - '),不能是中文破折号或连字符。

  • 推荐动态构造:value: new Date().toJSON().slice(0,10) + ' 00:00:00 - ' + new Date().toJSON().slice(0,10) + ' 23:59:59'
  • 如果结束时间固定为当天 23:59:59,但开始时间要可调,建议用 ready 回调 + 手动触发时间面板(见下一条)
  • maxmin 对 range 的两个输入框分别生效,不是全局限制

想让结束时间默认为 23:59:59?别硬点 DOM,用 ready + done 更稳

网上流传的用 $(".laydate-main-list-1 ...").click() 模拟点击来选中最后一秒的做法,极易失效——Layui 版本一升级、DOM 结构微调、异步加载延迟,就会点错位置或找不到元素。

真正可靠的方式是在 ready 钩子中获取当前日期对象,再用 done 回调同步更新另一个输入框:

皮卡智能
皮卡智能

AI驱动高效视觉设计平台

下载
laydate.render({
  elem: '#range',
  type: 'datetime',
  range: true,
  format: 'yyyy-MM-dd HH:mm:ss',
  ready: function() {
    // 初始化时把结束时间设为今天 23:59:59
    const today = new Date();
    today.setHours(23, 59, 59, 0);
    $('#range').val($('#range').val().split(' - ')[0] + ' - ' + layui.util.toDateString(today, 'yyyy-MM-dd HH:mm:ss'));
  },
  done: function(value, date, endDate) {
    if (value && value.includes(' - ')) {
      const [start, end] = value.split(' - ');
      if (!end || end.trim() === '') {
        const d = new Date(start);
        d.setHours(23, 59, 59, 0);
        $(this.elem).val(start + ' - ' + layui.util.toDateString(d, 'yyyy-MM-dd HH:mm:ss'));
      }
    }
  }
});

多个相同 class 的 input 初始化失败?必须 each 循环 render

直接写 elem: '.filter-time' 只会让第一个匹配元素生效,这是 laydate 内部实现机制决定的——它不支持批量绑定,也不做 NodeList 遍历。

错误现象:页面有 3 个 class="filter-time" 的输入框,只有第一个能点开日历,其余点击无反应。

  • 正确做法:用 jQuery 或原生 querySelectorAll 遍历,每个都单独 laydate.render({elem: element})
  • 不要在循环里重复 layui.use,只在外层调一次
  • 避免在 AJAX 动态插入后忘记重新初始化(需手动调 laydate.render

laydate 初始化看似简单,但 value 格式、range 分隔逻辑、多实例绑定、以及时间精度(尤其是 23:59:59 这种边界值)几个点,稍不注意就会卡住一整天。最稳妥的路径是:用 new Date()toJSON() 生成时间字符串,用 readydone 做二次修正,对多个控件坚决不用 class 简写。

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

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

WorkBuddy
WorkBuddy

腾讯云推出的AI原生桌面智能体工作台

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
jquery插件有哪些
jquery插件有哪些

jquery插件有jQuery UI、jQuery Validate、jQuery DataTables、jQuery Slick、jQuery LazyLoad、jQuery Countdown、jQuery Lightbox、jQuery FullCalendar、jQuery Chosen和jQuery EasyUI等。本专题为大家提供jquery插件相关的文章、下载、课程内容,供大家免费下载体验。

156

2023.09.12

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

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

337

2023.10.13

jquery删除元素的方法
jquery删除元素的方法

jquery可以通过.remove() 方法、 .detach() 方法、.empty() 方法、.unwrap() 方法、.replaceWith() 方法、.html('') 方法和.hide() 方法来删除元素。更多关于jquery相关的问题,详情请看本专题下面的文章。php中文网欢迎大家前来学习。

407

2023.11.10

jQuery hover()方法的使用
jQuery hover()方法的使用

hover()是jQuery中一个常用的方法,它用于绑定两个事件处理函数,这两个函数将在鼠标指针进入和离开匹配的元素时执行。想了解更多hover()的相关内容,可以阅读本专题下面的文章。

516

2023.12.04

jquery实现分页方法
jquery实现分页方法

在jQuery中实现分页可以使用插件或者自定义实现。想了解更多jquery分页的相关内容,可以阅读本专题下面的文章。

312

2023.12.06

jquery中隐藏元素是什么
jquery中隐藏元素是什么

jquery中隐藏元素是非常重要的一个概念,在使用jquery隐藏元素之前,需要先了解css样式中关于元素隐藏的属性,比如display、visibility、opacity等属性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

129

2024.02.23

jquery中什么是高亮显示
jquery中什么是高亮显示

jquery中高亮显示是指对页面搜索关键词时进行高亮显示,其实现办法:1、先获取要高亮显示的行,获取搜索的内容,再遍历整行内容,最后添加高亮颜色;2、使用“jquery highlight”高亮插件。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

184

2024.02.23

jQuery 正则表达式相关教程
jQuery 正则表达式相关教程

本专题整合了jQuery正则表达式相关教程大全,阅读专题下面的文章了解更多详细内容。

51

2026.01.13

c++ 字符处理
c++ 字符处理

本专题整合了c++字符处理教程、字符串处理函数相关内容,阅读专题下面的文章了解更多详细内容。

0

2026.03.17

热门下载

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

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号