微信小程序开发(5):日历组件的实现

微信小程序开发

小程序开发


浏览:1005 次

作者:叶小柴

https://www.cnblogs.com/yexiaochai/p/9412951.html

继续的:

微信小程序开发(4):创建自己的UI库

Github地址:https://github.com/yexiaochai/wxdemo

我们继续在这里实现我们的日历组件。这个日历组件有点特殊,是一个相对复杂的组件。然后,一般的日历组件会有很多变化,所以我们可以在这里实现最基本的标记:

let View=require(“行为视图”);

const util=require('../utils/util.js');

//const dateUtil=util.dateUtil;

组件({

行为:[

看法

],

属性:{

},

数据:{

WeekDayArr:[“天”、“一”、“二”、“三”、“四”、“五”、“六”],

displayMonthNum:1,

//当前显示的时间

displayTime:空,

//可以选择的最早时间

startTime:空,

//最晚时间

结束时间:空,

//当前时间,有时读取服务器端

当前时间:新日期()

},

附加:函数(){

//console.log(此)

},

方法:{

}

})

var isDate=函数(日期){

返回日期&;date.getMonth;

};

var isLeapYear=函数(年){

//需要处理时间格式的传入

if(isDate(year))year=year.getFullYear()

如果((年%4==0&年%100!=0)||(年%400==0))返回true;

返回false;

};

var getDaysOfMonth=函数(日期){

var month=日期。getMonth();//请注意,这里的月份将增加1,因此我们将减少1

var year=日期.getFullYear();

return[31,是LeapYear(年)吗?29:28,31,30,31,31,32,31,33,30,30,31][月];

}

var getBeginDayOfMouth=函数(日期){

var month=日期.getMonth();

var year=日期.getFullYear();

var d=获取日期(年、月、1);

返回d.getDay();

}

var getDisplayInfo=函数(日期){

如果(!isDate(日期)){

date=getDate(日期)

}

var year=日期.getFullYear();

var month=日期.getMonth();

var d=获取日期(年、月);

//这个月有多少天

var days=getDaysOfMonth(d);

//这个月几号开始

var beginWeek=getBeginDayOfMouth(d);

/*

console.log('info',JSON.stringify({

年:年,

月:月,

天:天,

开始周:开始周

}));

*/

返回{

年:年,

月:月,

天:天,

开始周:开始周

}

}

单元导出={

获取显示信息:获取显示信息

}

{{item}}

{{index+1-dateUtil.getDipalyInfo(curTime).beginWeek}}

这是一个非常初级的日历原型。在编码过程中,有几个痛点:

① WXML和js应该只传输数据,而不是完全传输