Skip to content
No description, website, or topics provided.
TypeScript Shell
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github
assets
demo minor android bug fix, and version bump Apr 3, 2019
publish final v1 commit Oct 24, 2017
src bump version Sep 26, 2019
.gitignore initial commit Oct 23, 2017
.prettierrc add prettier Sep 26, 2018
.travis.yml
LICENSE initial commit Oct 23, 2017
README.md updated readme Apr 3, 2019
tslint.json

README.md

nativescript-modal-datetimepicker Build Status npm npm

Twitter URL

NPM

This plugin is a wrapper around android.app.DatePickerDialog for Android, and UIDatePicker for iOS.

Android Screenshots

Date Picker

Time Picker

iOS

Installation

tns plugin add nativescript-modal-datetimepicker

Configuration

For android, the clock style can be clock or spinner For android, the calendar style can be calendar or spinner

This can be changed in App_Resources/Android/values-21/styles.xml

<!-- Default style for DatePicker - in spinner mode -->
<style name="SpinnerDatePicker" parent="android:Widget.Material.Light.DatePicker">
    <item name="android:datePickerMode">calendar</item>
</style>

<!-- Default style for TimePicker - in spinner mode -->
<style name="SpinnerTimePicker" parent="android:Widget.Material.Light.TimePicker">
    <item name="android:timePickerMode">clock</item>
</style>

Usage

NativeScript Core

const ModalPicker = require("nativescript-modal-datetimepicker")
  .ModalDatetimepicker;

const picker = new ModalPicker();

// Pick Date
exports.selectDate = function() {
  picker
    .pickDate({
      title: "Select Your Birthday",
      theme: "light",
      maxDate: new Date()
    })
    .then(result => {
      // Note the month is 1-12 (unlike js which is 0-11)
      console.log(
        "Date is: " + result.day + "-" + result.month + "-" + result.year
      );
      var jsdate = new Date(result.year, result.month - 1, result.day);
    })
    .catch(error => {
      console.log("Error: " + error);
    });
};

// Pick Time
exports.selectTime = function() {
  picker
    .pickTime()
    .then(result => {
      console.log("Time is: " + result.hour + ":" + result.minute);
    })
    .catch(error => {
      console.log("Error: " + error);
    });
};

API

pickDate(options): Promise<DateResponse>;

Returns a promise that resolves to DateResponse type object (Note: the month is 1-12, unlike js which is 0-11)

date: {
    day: number,
    month: number,
    year: number
}

pickTime(options): Promise<TimeResponse>;

Returns a promise that resolves to TimeResponse type.

time: {
    hour: number,
    minute: number
}

close(): void;

Closes any open picker.

options conform to the following interface:

export interface PickerOptions {
  title?: string; // iOS ONLY: The title to display above the picker, default hidden.
  theme?: string; // iOS ONLY: avalible options: none, extralight, light, regular, dark, extradark, prominent and overlay.
  overlayAlpha?: number; // iOS ONLY: when theme is 'overlay', available options: 0.0 to 1.0
  maxDate?: Date;
  minDate?: Date;
  cancelLabel?: string; // iOS Only
  doneLabel?: string; // iOS Only
  cancelLabelColor?: Color; // iOS Only
  doneLabelColor?: Color; // iOS Only
  startingHour?: number; // Ignored on pickDate()
  startingMinute?: number; // Ignored on pickDate()
  startingDate?: Date; // Ignored on pickTime()
  datePickerMode?: string; // Android ONLY: set this to "spinner" to see spinner for DatePicker, other option is "calendar" (which is the default)
}

Response Interfaces

export interface TimeResponse {
  hour: number;
  minute: number;
}

export interface DateResponse {
  day: number;
  month: number;
  year: number;
}

License

Apache License Version 2.0, January 2004

You can’t perform that action at this time.