nativescript-modal-datetimepicker
![npm](https://img.shields.io/npm/v/nativescript-material-datetimepicker.svg)
![Twitter URL](https://img.shields.io/badge/twitter-%40MultiShiv19-blue.svg)
![NPM](https://nodei.co/npm/nativescript-modal-datetimepicker.png)
This plugin is a wrapper around android.app.DatePickerDialog
for Android, and UIDatePicker
for iOS.
Android Screenshots
Date Picker
Time Picker
iOS
Installation
NativeScript 7+:
Run ns plugin add nativescript-modal-datetimepicker
NativeScript below 7:
Run tns plugin add nativescript-modal-datetimepicker@1.2.3
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
<style name="SpinnerDatePicker" parent="android:Widget.Material.Light.DatePicker">
<item name="android:datePickerMode">calendar</item>
</style>
<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();
exports.selectDate = function() {
picker
.pickDate({
title: "Select Your Birthday",
theme: "light",
maxDate: new Date()
})
.then(result => {
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);
});
};
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;
theme?: string;
overlayAlpha?: number;
maxDate?: Date;
minDate?: Date;
cancelLabel?: string;
doneLabel?: string;
cancelLabelColor?: Color;
doneLabelColor?: Color;
startingHour?: number;
startingMinute?: number;
startingDate?: Date;
datePickerMode?: string;
}
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