废话不多说,直接上代码,相信来看的也没空看我说的内容。。。。。
首先添加插件 cordova plugin add cordova-plugin-datepicker
在需要填写日历的地方,下面以input输入框为例,简单明了。
html代码
width: 100%;padding: 2px" placeholder="请选择日期"
ng-click="pickDate('instart')" ng-model="dateStart">
js代码
$scope.dateStart = "";//初始化值
$scope.pickDate = function (type) {
if (device.platform === 'android' || device.platform === 'Android') {//判断是android还是ios
console.log("device:", device.platform);
$scope.androidPickDate(type);
} else {
$scope.iosPickDate(type);
}
};
$scope.iosPickDate = function (type) {
var dateTime = "";
var options = {
date: new Date(),
mode: 'datetime'
};
datePicker.show(options, function (date) {
dateTime = date.Format('yyyy/MM/dd '); //注意这里有一个日期转换
$scope.inputDatePicker(type, dateTime);
});
};
$scope.androidPickDate = function (type) {
var pickDate = "";
var options1 = {
date: new Date(),
mode: 'date'
};
datePicker.show(options1, function (date) {
pickDate = date.Format('yyyy-MM-dd');
$scope.inputDatePicker(type, pickDate);
});
};
//根据INPUT里面的参数赋值
$scope.inputDatePicker = function (type, dateTime) {
if ("instart" === type) {
$scope.dateStart = dateTime;
}
if ("inend" === type) {//多处调用日历插件
$scope.dateEnd = dateTime;
}
$scope.$apply();
};
//日期转换
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;
};
效果图