ionic之时间&日期组件实例

ionic-datepick

introduce

http://market.ionic.io/plugins/ionicdatepicker

download

bower install ionic-datepicker#0.9.0 --save

load js

<script src="lib/ionic-datepicker/dist/ionic-datepicker.bundle.min.js"></script>

use

app中注入

angular.module('mainModuleName', ['ionic', 'ionic-datepicker']){
//
}

controller里面配置

var disabledDates = [
      new Date(1437719836326),
      new Date(),
      new Date(2015, 7, 10), //months are 0-based, this is August, 10th!
      new Date('Wednesday, August 12, 2015'), //Works with any valid Date formats like long format
      new Date("08-14-2015"), //Short format
      new Date(1439676000000) //UNIX format
    ];
    //方便的年月日设置方式,正和我意,可以随便改了。
    var weekDaysList = ["S", "M", "T", "W", "T", "F", "S"];//中文:["日", "一", "二", "三", "四", "五", "六"];
    var monthList = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];
    //中文:["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"];
    // 日期选择后的回调函数
    var datePickerCallbacke = function (val) {
      if (typeof (val) === 'undefined') {
      } else {
        console.log('Selected date is : ', val);
        $scope.scheduleInfo.scheduleDate = val;//更新日期。
      }
    };
    //主体对象
    $scope.datepickerObjectEnd = {
      titleLabel: '选择日期',  //可选
      todayLabel: '今天',  //可选
      closeLabel: '关闭',  //可选
      setLabel: '设置',  //可选
      setButtonType: 'button-assertive',  //可选
      todayButtonType: 'button-assertive',  //可选
      closeButtonType: 'button-assertive',  //可选
      inputDate: new Date(),  //可选,输入值
      mondayFirst: true,  //可选,星期一开头
      disabledDates: disabledDates, //可选
      weekDaysList: weekDaysList, //可选
      monthList: monthList, //可选
      templateType: 'popup', //可选i.e.的模式 modal or popup(兼容模式?)
      showTodayButton: 'true', //可选
      modalHeaderColor: 'bar-positive', //可选
      modalFooterColor: 'bar-positive', //可选
      from: new Date(2008, 8, 2), //可选
      to: new Date(2030, 8, 25),  //可选
      callback: function (val) {  //Mandatory
        datePickerCallbacke(val);
      },
      dateFormat: 'yyyy-MM-dd', //可选
      closeOnSelect: true, //可选,设置选择日期后是否要关掉界面。呵呵,原本是false。
    };

html中使用

 <h3>日期:</h3>
        <ionic-datepicker input-obj="datepickerObjectEnd">
          <!--<button class="button button-block button-positive"> {{datepickerObjectEnd.inputDate |-->
          <!--date:datepickerObjectEnd.dateFormat}}-->
          <!--</button>-->
          {{scheduleInfo.scheduleDate|date:'fullDate'}}
        </ionic-datepicker>

效果

这里写图片描述

ionic-timepick

introduce

https://github.com/rajeshwarpatlolla/ionic-timepicker

download

bower install ionic-timepicker#0.4.0 --save

load js

<!-- path to ionic -->
<script src="lib/ionic-timepicker/dist/ionic-timepicker.bundle.min.js"></script>

use

app中注入

angular.module('mainModuleName', ['ionic', 'ionic-timepicker']){
//
}

controller配置

    $scope.vipTimePickerObject = {
      inputEpochTime: ((new Date()).getHours() * 60 * 60),  //Optional
      step: 15,  //Optional
      format: 24,  //Optional
      titleLabel: '24-hour Format',  //Optional
      setLabel: 'Set',  //Optional
      closeLabel: 'Close',  //Optional
      setButtonType: 'button-positive',  //Optional
      closeButtonType: 'button-stable',  //Optional
      callback: function (val) {    //Mandatory
        timePickerCallback(val);
      }
    };
    function timePickerCallback(val) {
      if (typeof (val) === 'undefined') {
        console.log('Time not selected');
      } else {
        $scope.vipTimePickerObject.inputEpochTime = val;
        $scope.scheduleInfo.scheduleTime = epochParser(val);
        console.log('选择的时间:' + epochParser(val));
      }
    }

    function prependZero(param) {
      if (String(param).length < 2) {
        return "0" + String(param);
      }
      return param;
    }

    function epochParser(val) {
      if (val === null) {
        return "00:00";
      } else {
        var hours = parseInt(val / 3600);
        var minutes = (val / 60) % 60;
        return (prependZero(hours) + ":" + prependZero(minutes));
      }
    }

html里面调用

<h3>时间:</h3>
        <ionic-timepicker input-obj="vipTimePickerObject">
          <!--<button class="button button-block button-positive">-->
          <!--&lt;!&ndash;<standard-time-meridian etime='timePickerObject.inputEpochTime'></standard-time-meridian>&ndash;&gt;-->
          <!--<standard-time-no-meridian-->
          <!--etime='vipTimePickerObject.inputEpochTime'>{{selectedTime}}-->
          <!--</standard-time-no-meridian>-->
          <!--</button>-->
          {{scheduleInfo.scheduleTime}}
        </ionic-timepicker>

效果

这里写图片描述

ion-datetime-picker

introduce

https://github.com/katemihalikova/ion-datetime-picker

download

bower install ion-datetime-picker --save

load js

<script src="lib/ion-datetime-picker/release/ion-datetime-picker.min.js"></script>
<link href="lib/ion-datetime-picker/release/ion-datetime-picker.min.css" rel="stylesheet">

use

app中注入

angular.module("myApp", ["ionic", "ion-datetime-picker"]);

html中调用

<ion-list>
    <ion-item ion-datetime-picker ng-model="datetimeValue">
        {{datetimeValue| date: "yyyy-MM-dd H:mm:ss"}}
    </ion-item>
</ion-list>

controller里面调用

$scope.addRemindTime = function () {
      console.log("增加提醒时间设置");

      $scope.tmp = {};
      $scope.tmp.newDate = new Date();

      var birthDatePopup = $ionicPopup.show({
        //template: '<datetimepicker ng-model="tmp.newDate"></datetimepicker>',
        template: '<div ion-datetime-picker="" seconds="" am-pm="" ng-model="tmp.newDate"></div>',
        title: "Remind Time",
        scope: $scope,
        buttons: [
          {text: 'Cancel'},
          {
            text: '<b>Save</b>',
            type: 'button-positive',
            onTap: function (e) {
              $scope.datetimeValue = $scope.tmp.newDate;
            }
          }
        ]
      });
    }

效果
这里写图片描述

优化的地方

  1. 很多配置信息应该放到app.config中进行配置
  2. 国际化目前还没做
  3. 响应效率还没测试
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 14
    评论
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值