2023-07-11 18:37:25 +08:00
|
|
|
|
|
|
|
|
import 'package:flutter/material.dart';
|
|
|
|
|
import 'package:flutter_cupertino_datetime_picker/flutter_cupertino_datetime_picker.dart';
|
|
|
|
|
import 'package:get/get.dart';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
typedef DateValueCallback(DateTime dateTime, List<int> selectedIndex);
|
|
|
|
|
|
2024-01-23 17:29:18 +08:00
|
|
|
class ShowSelectDateTime {
|
2023-07-11 18:37:25 +08:00
|
|
|
|
|
|
|
|
void showDatePicker(BuildContext context, String maxT, String minT, String nowDate, String formatStr, DateValueCallback onConfirm,) {
|
|
|
|
|
// String MIN_DATETIME = '1900-01-01 00:00';
|
|
|
|
|
// String MAX_DATETIME = '2100-01-01 00:00';
|
|
|
|
|
// String INIT_DATETIME = getNowDate();
|
2024-08-19 15:24:14 +08:00
|
|
|
final DateTime _dateTime = DateTime.parse(nowDate);
|
|
|
|
|
const DateTimePickerLocale _locale = DateTimePickerLocale.zh_cn;
|
|
|
|
|
final String _format = formatStr;
|
2023-07-11 18:37:25 +08:00
|
|
|
|
|
|
|
|
DatePicker.showDatePicker(
|
|
|
|
|
context,
|
|
|
|
|
onMonthChangeStartWithFirstDate: true,
|
|
|
|
|
pickerTheme: DateTimePickerTheme(
|
2024-07-26 09:57:44 +08:00
|
|
|
cancel: Text('取消'.tr, style: const TextStyle(color: Colors.black)),
|
2023-07-11 18:37:25 +08:00
|
|
|
showTitle: true,
|
2024-07-26 09:21:22 +08:00
|
|
|
confirm: Text('确定'.tr, style: const TextStyle(color: Colors.black)),
|
2023-07-11 18:37:25 +08:00
|
|
|
),
|
|
|
|
|
minDateTime: DateTime.parse(minT),
|
|
|
|
|
maxDateTime: DateTime.parse(maxT),
|
|
|
|
|
initialDateTime: _dateTime,
|
|
|
|
|
dateFormat: _format,
|
|
|
|
|
locale: _locale,
|
|
|
|
|
onClose: () {
|
|
|
|
|
|
|
|
|
|
},
|
|
|
|
|
onCancel: () {
|
|
|
|
|
|
|
|
|
|
},
|
|
|
|
|
onChange: (dateTime, List<int> index) {
|
|
|
|
|
|
|
|
|
|
},
|
|
|
|
|
onConfirm: onConfirm,
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
}
|