vue小荔枝,时间控件,动态按月份增减。

  1. 依赖框架有jq,bootstrap3.0,vue2.0;
  2. 自封装(搬运)时间控件,bootstrap-datetimepicker。资源下载:看这里
  • 需求:
  • 默认本地时间,相隔一个月
  • 四个选项:1一个月,一个季度,半年,一年。
  • 如果结束日期不变,那么默认递增即可,如果结束日期改变了,以变更的日期递增月份。

html结构:

<div id="app">
        <div class="col-md-5 form-inline">
            <div class="form-group">
                <input type="text" class="form-control"  id="datetimepicker">--
                <input type="text" class="form-control"  id="dateEnd">
            </div>

            <div id="tool">
                <label>
                    <input type="radio" name="date" checked  @click="dateSet(1)">间隔一个月
                </label>
                <label>
                    <input type="radio" name="date"  @click="dateSet(4)">间隔四个月
                </label>
                <label >
                    <input type="radio" name="date" @click="dateSet(6)">间隔六个月
                </label>
                <label>
                    <input type="radio" name="date"  @click="dateSet(12)">间隔12个月
                </label>
            </div>
        </div>
    </div>

  时间插件:

//首先在date原型上扩展一个自定义时间解析方法
Date.prototype.Format_ = function(fmt) {
    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;
};
//然后new两个date出来分别是当月和上个月
var begin=new Date();
var end=new Date();
new Date(begin.setMonth((new Date().getMonth()-1)));//-1就是前一个月;+1就是下一个月
var begintime= begin.Format_("yyyy-MM-dd");
var endtime=end.Format_("yyyy-MM-dd");

  vue-逻辑代码

 new Vue({
        el:"#app",
        data:{
            b:begintime,
            e:endtime
        },
        methods:{
            dateSet:function (num) {
                var thas=this,cacheEnd=thas.e,thisEnd=$(‘#dateEnd‘).val();
                var begin=new Date();
                var end=new Date();
                if(cacheEnd==thisEnd){
                    new Date(begin.setMonth((new Date().getMonth()-num)));//-1就是前一个月;+1就是下一个月
                    var begintime= begin.Format_("yyyy-MM-dd");
                    $(‘#datetimepicker‘).val(begintime);
                    console.log(‘相同‘)
                }else {
                    var d = new Date(thisEnd.replace(/-/g,"/"));
                    d.setMonth(d.getMonth()- num);
                    var str = d.getFullYear()+"-"+(d.getMonth()>=9?d.getMonth()+1:"0"+(d.getMonth()+1))+"-"+(d.getDate()>9?d.getDate():"0"+d.getDate());
                    $("#datetimepicker").val(str);
                    console.log(‘不同‘)
                }
            },

        }
    });

  初始化时间容器

//time时间插件
    $(‘#datetimepicker‘).datetimepicker({
        minView: "month", //很关键,如果不限制到月视图,它默认是到小时的。
        todayHighlight:true,
        language:‘zh-CN‘,
        format:‘yyyy-mm-dd‘,
        autoclose: true,
    }).val(begintime);

    $(‘#dateEnd‘).datetimepicker({
        minView: "month",
        todayHighlight:true,
        language:‘zh-CN‘,
        format:‘yyyy-mm-dd‘,
        autoclose: true,
    }).val(endtime);

  ps:在搬运代码这条路上,我会一直走下去。

时间: 2024-08-05 09:11:47

vue小荔枝,时间控件,动态按月份增减。的相关文章

bootstrap-datetimepicker时间控件

欢迎各种吐槽. 本人小前端,学习过程中,某日遇到做时间控件的需求,于是无休止的召唤了度娘,发现看不太懂.算是为自己做个笔记,也便于菜鸟级别的看的懂. 首先,我们看看点击选择时间的时候的展示页面吧 年                                                月                                            日 时                                                       

仿微信小视频录制控件

本文为用 MediaRecorder 录制小视频的控件,可以设置视频录制的时间.空间大小.初始时是否打开摄像头等. 此控件为组合控件,继承自 LinearLayout ,为防止出错,需实现 android.media.MediaRecorder.OnErrorListener 接口. 1. [文件] MovieRecorderView.java ~ 9KB 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 2

C# Winform控件动态删除

WPF控件的动态删除请参考WPF动态删除指定类型控件 今天在实现控件动态删除过程中遇到了点小Trouble,就是在删除的过程中只能删除一半,具体代码如下: foreach (var control in from ctls in controlUtility.GetControls(panel1) where ctls.Name.StartsWith("BtnTable") select ctls) { panel1.Controls.Remove(control); control.

jquery-ui日期时间控件实现

日期控件和时间控件为独立控件,日期时间控件要同一时候导入日期控件和时间控件的js,然后在日期控件加入时间控件显示參数,没有导入时间控件js.日期控件函数设置的时间控件參将包错 日期控件官网网址:http://jqueryui.com/ 日期控件js:jquery-ui.js 相应函数及默认属性设置:function Datepicker() 时间控件官网网址:http://plugins.jquery.com/jt.timepicker/ 时间控件js:jquery-ui-timepicker-

从零开始学_JavaScript_系列(九)——dojo(2)(AJAX、时间控件、鼠标事件、样式修改、事件移除、消息发布订阅)

(21)和(22)写的不好,跳过. (23)AJAX异步加载 插件:dojo/request 参数:request 语法(get): request.get(URL).then(成功回调函数,失败回调函数); 第一个回调函数是成功的,参数用response:(也可以用其他的) 第二个回调函数是失败的,参数用error:(也可以用其他的) 注: ①读取本地比较简单,直接填写本地的url即可: ②如果读取服务器端(比如数据库),那么需要相应的支持,例如python脚本等(我自己目前对python.和

My97DatePicker时间控件

之前一直使用easyui控件无法实现只显示yyyy年MM月格式或者显示yyyyMM格式.相比My97DatePicker时间控件更为强大些. 只要在页面引用如下脚本,WdatePicker.js内部会引用其它js. <script type="text/javascript" src="<%=root%>/Common/My97DatePicker/WdatePicker.js"></script> 然后在input中编写oncl

DatePicker日期与时间控件

DatePicker日期与时间控件 一.简介 二.方法 三.代码实例 四.收获

rf对时间控件的操作

1.如何去掉readonly属性 前端对于时间控件的设置,有时是为了限制用户不能进行手动输入方式进行选择时间,避免在手动输入的时候超限或者输入格式不正确,导致一些不必要的验证麻烦,这是前端开发工程师就会在前端代码中加入readonly属性,但是对于手动测试来说的话,这种只能进行点击控件进行选择时间,而对于自动测试来说,这样的方式可能是行不通,因为这个需要认证时间控件的有效性很多个选择,自动化变得更加麻烦, 是不是就没有办法进行了呢?答案是否点的,例如: 那该怎么进行设置呢?这个是前人踩过的坑,后

VB6.0中,日期、时间控件不允许为空时,采用文本框与日期、时间控件相互替换赋值(解决方案)

VB6.0中,日期.时间控件不允许为空时,采用文本框与日期.时间控件相互替换赋值,或许是一个不错的选择. 实现效果如下图: 代码如下: 文本框txtStopTime1 时间框DTStopTime1 格式3 - dtpCustom  HH:mm:ss Private Sub Form_Load()       txtStopTime1.ZOrder       DTStopTime1.Top = txtStopTime1.Top       DTStopTime1.Left = txtStopTi