My97日期控件 演示 & 文档 My97 DatePicker Demo & Doc
http://my97.net/demo/index.htm如何实现
点击某一天,输出的内容为:yyyy-MM-dd 00:00
如果同时选择了时间,
则输出:yyyy-MM-dd HHmmss

解决方案 »

  1.   

    <input type="text" id="d233" onclick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss'})"/>
      

  2.   

    需要什么格式的只需要修改dateFmt就可以了
      

  3.   


    不好意思,可能我没表达清楚吧,我不是要这个效果。
    我是希望切换日期后,显示的格式是:yyyy-MM-dd 00:00
    例如,现在点击控件里的【今天】,输入的是:2019-07-27 16:27,重新 选择昨天的,显示为:2019-07-26 16:27,
    我要的是:2019-07-27 00:00
      

  4.   

    不好意思,可能我没表达清楚吧,我不是要这个效果。
    我是希望切换日期后,显示的格式是:yyyy-MM-dd 00:00
    例如,现在点击控件里的【今天】,输出的是:2019-07-27 16:50,重新 选择昨天的,显示为:2019-07-26 16:50,
    我要的是:2019-07-26 00:00
      

  5.   

    不好意思,可能我没表达清楚吧,我不是要这个效果。
    我是希望切换日期后,显示的格式是:yyyy-MM-dd 00:00
    例如,现在点击控件里的【今天】,输出的是:2019-07-27 16:50,重新 选择昨天的,显示为:2019-07-26 16:50,
    我要的是:2019-07-26 00:00My97日期控件 功能演示 特色功能 常规功能 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");//只是示例
        }
    但这样会有问题的,原本选择时间(时分)的功能就不能用了
      

  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>个人觉得: 这样不优雅、供您参考一下咯
      

  7.   


    谢谢!if (this.prevDate - this.newDate >=  oneDay) 这个判断有问题。
    我前面说的【昨天】只是举例,当切换日期,如果没选择时间(HH:mm),都只输出00:00。
    如果选择了时间,并点击确定,则读取选择的时间来输出。
      

  8.   

    刚刚去看了一下文档,可以这么设置<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})"/>
      

  9.   

    那你再试试<input type="text" id="d233" onclick="WdatePicker({startDate:'%y-%M-0 00:00:00',dateFmt:'yyyy-MM-dd HH:mm:ss',alwaysUseStartDate:true})"/>或者试试 第8楼的方法。这个就是不断的尝试。