简体   繁体   English

如何使用pickadate js通过单击前一天/后一天按钮来更改日期

[英]how to change day by clicking previous / next day buttons using pickadate js

I am using pickadate to choose a date. 我正在使用pickadate选择日期。 I am trying to change the selected date by clicking the previous day or next day buttons. 我试图通过单击前一天或后一天按钮来更改所选日期

    <form method="post">
    <a href="#">previus day</a>
    <input type="text" id="test" data-value="01/11/2017">
    <a href="#">next  day</a>
    <button type="submit">Submit</button>
    </form>

    <script>
    $('#test').pickadate({format: 'dd/mm/yyyy'});
    </script>

Here is the jsfiddle link: https://jsfiddle.net/kdoo53vg/41/ 这是jsfiddle链接: https ://jsfiddle.net/kdoo53vg/41/

I am newbie at programming. 我是编程新手。 I would appreciate if you can show me the way to do it. 如果您能向我展示解决方法,我将不胜感激。 Thanks heaps. 谢谢堆。

The library you're using does not have built in methods to skip to the next/previous days, however it does expose methods you can use to create the functionality yourself. 您正在使用的库没有内置方法可跳至下一天/前几天,但是它确实提供了可用于自己创建功能的方法。

On click of the next/prev buttons you can get the currently selected date and then add or subtract a day from it, something like this: 单击下一步/上一个按钮时,您可以获取当前选定的日期,然后从中添加或减去一天,如下所示:

 var picker = $('#test').pickadate({ format: 'dd/mm/yyyy' }).pickadate('picker'); $('#previous_day, #next_day').click(function(e) { e.preventDefault(); setDate($(this).data('diff')); }) function setDate(diff) { var date = new Date(picker.get('select').pick); var newDate = date.setDate(date.getDate() + diff); picker.set('select', newDate) } 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/pickadate.js/3.5.6/compressed/picker.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/pickadate.js/3.5.6/compressed/picker.date.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/pickadate.js/3.5.6/compressed/picker.time.js"></script> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/pickadate.js/3.5.6/compressed/themes/default.css" /> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/pickadate.js/3.5.6/compressed/themes/default.date.css" /> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/pickadate.js/3.5.6/compressed/themes/default.time.css" /> <form method="post"> <a href="#" id="previous_day" data-diff="-1">previous day</a> <input type="text" id="test" data-value="01/11/2017"> <a href="#" id="next_day" data-diff="1">next day</a> <button type="submit">Submit</button> </form> 

You have to add click events to previous/next day links. 您必须将click事件添加到前一天/第二天的链接。 I don't know this plugin, but if there are functions prev/next, you can use it. 我不知道这个插件,但是如果有prev / next功能,您可以使用它。 If not, you have to read date from input and set next/prev date to it. 如果不是,则必须从输入中读取日期并为其设置下一个/上一个日期。

You can have next/prev date using Date object 您可以使用Date对象获得下一个/上一个日期

var date = new Date(),
    prevDate = date.setDate(date.getDate() - 1),
    nextDate = date.setDate(date.getDate() - 1);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM