Giter Club home page Giter Club logo

singod / jedate Goto Github PK

View Code? Open in Web Editor NEW
473.0 16.0 151.0 577 KB

jeDate V6.5.0 是一款原生JS开发的 不依赖任何第三方库 大众化的日期控件,她身兼多职,虽不是万能的,但是她却是功能强大多样的美少女,她除了包含 单双面板、区域选择、 多语言、日历固定、有效无效日期、日期时间戳转换、日期加减、限制时分秒、初始化日期加减N、日期标注点、设定年月(YYYY-MM)、日期范围限制、开始日期设定、自定义日期格式、当天的前后若干天返回、时分秒选择、智能响应、自动纠错、节日识别,操作等常规功能外,根据不同的日期格式,显示不同内容,还拥有更多趋近完美的解决方案。更多的是需要你与她的亲密接触与呵护!

Home Page: http://www.jemui.com/uidoc/jedate.html

License: MIT License

HTML 12.02% CSS 11.74% JavaScript 76.24%
jedate javascript date datetimepicker datepicker datetime

jedate's Introduction

jeDate.js

jeDate V6.5.0 是一款原生JS开发的 不依赖任何第三方库 大众化的日期控件,她身兼多职,虽不是万能的,但是她却是功能强大多样的美少女,她除了包含 单双面板、区域选择、 多语言、日历固定、有效无效日期、日期时间戳转换、日期加减、限制时分秒、初始化日期加减N、日期标注点、设定年月(YYYY-MM)、日期范围限制、开始日期设定、自定义日期格式、当天的前后若干天返回、时分秒选择、智能响应、自动纠错、节日识别,操作等常规功能外,根据不同的日期格式,显示不同内容,还拥有更多趋近完美的解决方案。更多的是需要你与她的亲密接触与呵护! QQ群:516754269

使用方法

快速上手

使用NPM安装

npm install jquery.jedate

使用Git安装

git clone git://github.com/singod/jeDate.git

使用对象

<input class="datainp" id="indate" type="text" placeholder="请选择"  readonly>
<input class="datainp" id="dateinfo" type="text" placeholder="请选择"  readonly>

查看演示

License

MIT License

jedate's People

Contributors

kangseung avatar regon-cao avatar singod avatar writethesky avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

jedate's Issues

时间控件的最小时间有bug

当我设置最小时间到时分秒时如 2015-06-16 10:20:25
那么当前的版本的控件会让我所有日期的时分秒选择都必须大于10:20:25 例如2017-11-09 09:10:10 就选不了

There is a bug on the 'YYYY' mode

While in the 'YYYY' mode,when the "next" button is clicked, the result show us "NaN".
jeDate/jedate/jquery.jedate.js, line:467:
ymVal = cls == ymPre ? boxCell.find(".jedayy li").attr("yy") : boxCell.eq(jet.yearArr.length-1).find(".jedayy li").attr("yy");
==>
ymVal = cls == ymPre ? boxCell.find(".jedayy li").attr("yy") : boxCell.find(".jedayy li").eq(jet.yearArr.length-1).attr("yy");

算了,还是中文说吧,主js文件第467行,三目运算符的最后选择器顺序反掉了。

一个最小日期的BUG

YYMMDD模式下设置了最小日期,但是调动年份或者月份到最小日期之前,点击确定还是可以选择到小于最小日期的日期

okfun回调 无法获得elem

function OtherStarTime(elem){
$.jeDate(elem,{
insTrigger:false,
isinitVal: true,
format: 'hh:mm',
fixed: true,
isClear: false,
ishmsVal: false,
zIndex: 29,
okfun: function(elem, val) {
console.log($(elem),'无法获取elem')
},
});
}

时间限制问题

控件限制不能小于当前时间 当前时间为 11:12 我想选择12:05的时候发现分受限 时间格式 HH:mm

tim 20170720111244

时间段选择

你好,请问插件有没有这种时间段的选择方式,两个时间选择器,当设定了第一个的日期,第二个的日期最低时间不能低于第一个日期,这样子,谢谢

Uncaught ReferenceError: $ is not defined 第一次用,求解?

<script type="text/javascript"> function testShow(elem){ $.jeDate(elem,{ insTrigger:false, format: 'YYYY年MM月DD日 hh:mm', minDate: '2014-06-16 23:59:59', //设定最小日期为当前日期 festival: true, maxDate: '2099-06-16 23:59:59' //最大日期 }); } </script>

firefox 下出现问题

在firefox中,日期选择框得点俩次才出来。第一次只是填了个当前时间,第二次才出来选择框

缺少手动重置的方法

两个输入框都初始化了时间控件,分为开始时间和结束时间(在一个弹窗里面),选择时间后手动清空输入框,重新打开弹窗,控件记录的是上次的配置,即使重新配置重新初始化,没有用,建议增加一些手动重置配置的方法

时间选择问题

这个地方格式就是YYYY-MM-DD 00:00:00啊
怎么把 00:00:00 变成 23:59:59

default

关闭的时候会出现问题,选择框变成NaN-NaN

jedate.js?1462941863700:430 Uncaught TypeError: Failed to execute 'removeChild' on 'Node': parameter 1 is not of type 'Node'.jeDt.dateClose @ jedate.js?1462941863700:430(anonymous function) @ jedate.js?1462941863700:709

$.nowDate({DD:0})获取今天日期有问题

今天10月31日,调用$.nowDate()得到结果如下
$.nowDate({DD:0})
"2017-11-01 11:13:18"
$.nowDate({DD:-1})
"2017-10-30 11:13:29"
$.nowDate({DD:+1})
"2017-11-02 11:16:13"

input是动态加载的

如果我页面的input是动态载入的,而且页面有很多日期选择的input,这种情况怎么处理呢?

$.timeStampDate问题

$.timeStampDate = function (date,bool,format) {
format = format || 'YYYY-MM-DD hh:mm:ss';
if(bool == true){ //将时间戳转换成日期
var setdate = new Date(parseInt(date.substring(0,10)) * 1e3);
return jet.parse([ setdate.getFullYear(), jet.digit(setdate.getMonth() + 1), jet.digit(setdate.getDate()) ], [ jet.digit(setdate.getHours()), jet.digit(setdate.getMinutes()), jet.digit(setdate.getSeconds()) ], format);
}else { //将日期转换成时间戳
var tmsArr = jet.reMacth(date),
newdate = new Date(tmsArr[0],tmsArr[1],tmsArr[2],tmsArr[3],tmsArr[4],tmsArr[5]),
timeStr = newdate.getTime().toString();
return timeStr.substr(0, 10);
}
};

newdate = new Date(tmsArr[0],tmsArr[1],tmsArr[2],tmsArr[3],tmsArr[4],tmsArr[5]),
这个地方的在转换的时候会多增加一个月
tmsArr[1]

能否国际化i18n?

你把中文字符用伪常量代替,根据data-lang或locale之类的选项,来确认用哪国语言不就国际化了么。其实我挺喜欢这个界面设计的

isToday:true, //是否显示今天或本月 设置为不显示本月是不生效

不知道是我设置的不正确而导致不胜熊,还是其他的原因
image
image
image
看到源码:if(!isYYMM){
jet.isBool(opts.isToday) ? "" : jet.isShow(boxCell.find(".jedatebot .jedatetodaymonth"), false);
};
我的理解是如果设置的YYYY-MM,则不执行设置的 isToday这个属性,不知道是不是这个地方导致我设置的不显示本月按钮不生效的原因

感觉这是一个不人性化的错误,在1月份的时候点击上一年会跳转两年,在12月份的时候点击下一年也是跳转两年

在1月份的时候点击上一年会跳转两年 2016-1 =》2014-1;
在12月份的时候点击下一年也是跳转两年 2016-12=》2018-12;
js源文件 jquery.jedate.js 第 645行作出修改:
!ishhmmss && $.each([ yPre, yNext ], function(i, cls) {
cls.on("click", function(ev) {
if(boxCell.find(".jedatetopym").css("display") == "block") return;
ev.stopPropagation();
var year = parseInt(jedateyear.attr("year")), month = parseInt(jedatemonth.attr("month")),
pnYear = cls == yPre ? --year : ++year, PrevYM = jet.getPrevMonth(pnYear, month), NextYM = jet.getNextMonth(pnYear, month);
cls == that.createDaysHtml(pnYear, month, opts); //修改
//cls == yPre ? that.createDaysHtml(PrevYM.y, month, opts) : that.createDaysHtml(NextYM.y, month, opts); //这是源代码
});
});
修改后 2016-1 =》2015-1;
2016-12 =》2017-12;

请教作者个问题,

插件里面貌似有scrollTop事件,和自己本地的scolltop冲突了该怎么办?谢谢

2016.5 月份 有严重问题 ,不可选中

2016年5月份 日期不可选择 有严重问题,望尽快修复 !
jedate的版本为最近版本
chrome 浏览器 firfox浏览器
windows系统

                    /** 开始日期 */
        var start = {
            dateCell:"#date_start",
            isTime:false, 
            minDate:"2014-09-19 00:00:00",
            format:'YYYY-MM-DD',
            festival: true,
            maxDate: jeDate.now(-1),    //最大日期为昨天
            choosefun:function(val) {   //选中日起调用方法
                end.minDate = val; //开始日选好后,重置结束日的最小日期
            }
        };

        /** 截至日期 */
        var end = {
            dateCell:"#date_end",
            isTime:false, 
            minDate:"2014-09-19 00:00:00",
            format:'YYYY-MM-DD',
            festival: true,
            maxDate: jeDate.now(-1),    //最大日期为昨天
            choosefun:function(val) {   //选中日起调用方法
                start.maxDate = val; //将结束日的初始值设定为开始日的最大日期
            }
        };

        jeDate(start);
        jeDate(end);

关于时间段选择出现禁用错乱问题

作者你好:
问题是:选择时间段,当开始时间选择为某月的31号,截止时间选择31号或下一月的1号,然后在重新选择开始时间时,就会出现31号月的禁用错乱现象;

2处明显BUG,时间戳转换和-30天

之前一直用的此插件,都还好,但是最近做项目,发现2处错误,所以指出来

时间戳转换会误差月份,一个月。。。。

减天数的时候,小数字的时候还好,-30天的时候,很明显,今天是8月31日,减去30天居然是7月32日
无奈,自己做了个减法的插进去了。。。

这是一个bug

当初始化最小日期(minDate)设置大于“今天”或者最大日期(maxDate)设置小于“今天”,“今天”按钮,逻辑上应该是禁用的。

如何动态取消日期选择

有一些业务是用户选择类型进行动态设置为日期选择的,如果用户选了只能输入整数,这样我如何把input重新改成普通的input输入框呀

空链接内的span图标点击后不能正确生成日历

html:
    

问题出在173行

jet.sortDate = function (time,format) {
    var timeObj = {}, newtime = [], mats = regymd.split("|"),
        subhh = jet.checkFormat(format).substring(0, 2) == "hh" ? true :false,
        numArr = jet.IsNum(time) ? (jet.reMacth(subhh ? time.replace(/(.{2})/g,"$1,") : time.substr(0,4).replace(/^(\d{4})/g,"$1,") + time.substr(4).replace(/(.{2})/g,"$1,"))) : jet.reMacth(time),
        matArr = jet.IsNum(time) ? (jet.reMacth(subhh ? format.replace(/(.{2})/g,"$1,") : format.substr(0,4).replace(/^(\w{4})/g,"$1,") + format.substr(4).replace(/(.{2})/g,"$1,"))) : jet.reMacth(format);
    $.each(numArr,function (i,val) {
        timeObj[matArr[i]] = val;
    });

这里的$.each有问题, 报错Uncaught TypeError: Cannot read property 'length' of null
问题是296行和297行

        var initVal = jet.isValHtml(objCell) ? objCell.val() : objCell.text();
        var inVals = jet.sortDate(initVal,jet.format);

initVal 是 4个空格   故 jet.sortDate 函数的 time是" ", 最后导致 numArr 是null(jet.reMacth(time)), 在后面的 $.each函数中调用jquery的each函数, 有个a.length>0 这种, 报错了.

解决办法, 就是:jet.sortDate(time,format), time值为空格或者多个空格, 应该设置一个默认值,比如当前时间.
这样就可以解决问题

                            if ($.trim(time)=="")
			{
			    var tmptime = new Date();
			    time = tmptime.format("yyyy-MM-dd hh:mm:ss");
			}

年月视图下选择年份

你好,年月视图下选择年份只能前后间隔1年的切换。
有没考虑过添加一个10年视图(和年月日视图下选择年一样,不过是点击后渲染出月视图),这样就方便多了。
谢谢你的努力贡献!

JDate与pin定位插件冲突

使用jQuery.Pin插件让时间输入框定位在网站一个位置,不点时间输入框一切正常,点击选择时间后,定位效果丢失。

最大/最小 —— 月份/年份

作者你好,感谢你的jeDate,做得很好,也非常好用,如果能否支持设置最大/最小月份,最大/最小年份的话,就能满足更多的需求了。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.