请教My97日期控件日期格式问题

TianYi3G2013 2019-07-27 03:14:57


My97日期控件 演示 & 文档 My97 DatePicker Demo & Doc
http://my97.net/demo/index.htm

如何实现
点击某一天,输出的内容为:yyyy-MM-dd 00:00
如果同时选择了时间,
则输出:yyyy-MM-dd HHmmss
...全文
292 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
TianYi3G2013 2019-07-31
  • 打赏
  • 举报
回复
引用 9 楼 金色海洋_ 的回复:
刚刚去看了一下文档,可以这么设置 <input type="text" id="d233" onclick="WdatePicker({startDate:'%y-%M-%d 00:00:00',dateFmt:'yyyy-MM-dd HH:mm:ss',alwaysUseStartDate:true})"/>
<input type="text" id="d233" onclick="WdatePicker({startDate:'%y-%M-%d 00:00:00',dateFmt:'yyyy-MM-dd HH:mm:ss',alwaysUseStartDate:true})"/>
我测试了,这样设置后,点击任意日期的时分秒都是当前的,不再输出:00:00:00
自然框架 2019-07-31
  • 打赏
  • 举报
回复
那你再试试 <input type="text" id="d233" onclick="WdatePicker({startDate:'%y-%M-0 00:00:00',dateFmt:'yyyy-MM-dd HH:mm:ss',alwaysUseStartDate:true})"/> 或者试试 第8楼的方法。 这个就是不断的尝试。
自然框架 2019-07-30
  • 打赏
  • 举报
回复
刚刚去看了一下文档,可以这么设置 <input type="text" id="d233" onclick="WdatePicker({startDate:'%y-%M-%d 00:00:00',dateFmt:'yyyy-MM-dd HH:mm:ss',alwaysUseStartDate:true})"/>
<input type="text" id="d233" onclick="WdatePicker({startDate:'%y-%M-%d 00:00:00',dateFmt:'yyyy-MM-dd HH:mm:ss',alwaysUseStartDate:true})"/>
自然框架 2019-07-30
  • 打赏
  • 举报
回复
好像可以设置默认值。 给文本框设置当前的年-月-日 ,然后时间固定为0:00 比如文本框默认值: 2019-7-30 0:00 这样设置试试,看看打开日期选择框的时候,时间是否是0:00 。 好久没用了,没试过。
TianYi3G2013 2019-07-27
  • 打赏
  • 举报
回复
引用 6 楼 前端_小学生 的回复:
这样子是不是实现了你想要的功能

<input type="text" id="d233" onclick="WdatePicker({onpicking: dateObj.onPicking,onpicked: dateObj.onPicked,startDate:'%y-%M-%d %h:%m:%s',dateFmt:'yyyy-MM-dd HH:mm:ss',alwaysUseStartDate:true})"/>
<script>
    var dateObj = {
        prevDate: null,
        newDate: null,
        onPicking: function (dp) {
            this.prevDate = new Date(dp.cal.getDateStr().replace(/\d{2}:\d{2}:\d{2}/g, "00:00:00")).getTime()
            this.newDate  = new Date(dp.cal.getNewDateStr().replace(/\d{2}:\d{2}:\d{2}/g, "00:00:00")).getTime()
        },
        onPicked: function (dp) {
            var that = this;
            const oneDay = 24 * 60 * 60 * 1000;
            if (this.prevDate - this.newDate >=  oneDay) {
                setTimeout(function () {
                    that.value = dp.cal.getNewDateStr().replace(/\d{2}:\d{2}:\d{2}/g, "00:00:00");
                }, 0)
                console.log(this.prevDate -this.newDate)
            }
        }
    }
</script>
个人觉得: 这样不优雅、供您参考一下咯
谢谢!if (this.prevDate - this.newDate >= oneDay) 这个判断有问题。 我前面说的【昨天】只是举例,当切换日期,如果没选择时间(HH:mm),都只输出00:00。 如果选择了时间,并点击确定,则读取选择的时间来输出。
前端_小学生 2019-07-27
  • 打赏
  • 举报
回复
这样子是不是实现了你想要的功能

<input type="text" id="d233" onclick="WdatePicker({onpicking: dateObj.onPicking,onpicked: dateObj.onPicked,startDate:'%y-%M-%d %h:%m:%s',dateFmt:'yyyy-MM-dd HH:mm:ss',alwaysUseStartDate:true})"/>
<script>
    var dateObj = {
        prevDate: null,
        newDate: null,
        onPicking: function (dp) {
            this.prevDate = new Date(dp.cal.getDateStr().replace(/\d{2}:\d{2}:\d{2}/g, "00:00:00")).getTime()
            this.newDate  = new Date(dp.cal.getNewDateStr().replace(/\d{2}:\d{2}:\d{2}/g, "00:00:00")).getTime()
        },
        onPicked: function (dp) {
            var that = this;
            const oneDay = 24 * 60 * 60 * 1000;
            if (this.prevDate - this.newDate >=  oneDay) {
                setTimeout(function () {
                    that.value = dp.cal.getNewDateStr().replace(/\d{2}:\d{2}:\d{2}/g, "00:00:00");
                }, 0)
                console.log(this.prevDate -this.newDate)
            }
        }
    }
</script>
个人觉得: 这样不优雅、供您参考一下咯
TianYi3G2013 2019-07-27
  • 打赏
  • 举报
回复
引用 4 楼 TianYi3G2013 的回复:
[quote=引用 1 楼 前端_小学生 的回复:] <input type="text" id="d233" onclick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss'})"/>
引用 2 楼 前端_小学生 的回复:
需要什么格式的只需要修改dateFmt就可以了
不好意思,可能我没表达清楚吧,我不是要这个效果。 我是希望切换日期后,显示的格式是:yyyy-MM-dd 00:00 例如,现在点击控件里的【今天】,输出的是:2019-07-27 16:50,重新 选择昨天的,显示为:2019-07-26 16:50, 我要的是:2019-07-26 00:00[/quote] My97日期控件 功能演示 特色功能 常规功能 My97 Datepicker Demo http://my97.net/demo/resource/2.2.asp#m224 可以增加onblur事件处理,如: onblur="formatDateTime(this)"

    Date.prototype.Format = function (fmt) { //author: meizz 
        var o = {
            "M+": this.getMonth() + 1, //月份 
            "d+": this.getDate(), //日 
            "h+": this.getHours(), //小时 
            "m+": this.getMinutes(), //分 
            "s+": this.getSeconds(), //秒 
            "q+": Math.floor((this.getMonth() + 3) / 3), //季度 
            "S": this.getMilliseconds() //毫秒 
        };
        if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
        for (var k in o)
            if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
        return fmt;
    }

 function formatDateTime(sender) {
              var oldTime = Date.parse(sender.value);
        var oldTime = new Date(sender.value);      
        sender.value = oldTime.Format("yyyy-MM-dd 00:00");//只是示例
    }
但这样会有问题的,原本选择时间(时分)的功能就不能用了
TianYi3G2013 2019-07-27
  • 打赏
  • 举报
回复
引用 1 楼 前端_小学生 的回复:
<input type="text" id="d233" onclick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss'})"/>
引用 2 楼 前端_小学生 的回复:
需要什么格式的只需要修改dateFmt就可以了
不好意思,可能我没表达清楚吧,我不是要这个效果。 我是希望切换日期后,显示的格式是:yyyy-MM-dd 00:00 例如,现在点击控件里的【今天】,输出的是:2019-07-27 16:50,重新 选择昨天的,显示为:2019-07-26 16:50, 我要的是:2019-07-26 00:00
TianYi3G2013 2019-07-27
  • 打赏
  • 举报
回复
引用 1 楼 前端_小学生 的回复:
<input type="text" id="d233" onclick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss'})"/>
不好意思,可能我没表达清楚吧,我不是要这个效果。 我是希望切换日期后,显示的格式是:yyyy-MM-dd 00:00 例如,现在点击控件里的【今天】,输入的是:2019-07-27 16:27,重新 选择昨天的,显示为:2019-07-26 16:27, 我要的是:2019-07-27 00:00
前端_小学生 2019-07-27
  • 打赏
  • 举报
回复
需要什么格式的只需要修改dateFmt就可以了
前端_小学生 2019-07-27
  • 打赏
  • 举报
回复
<input type="text" id="d233" onclick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss'})"/>

87,921

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧