letDateTimeOrNull function
Let's you convert input to a DateTime type if possible, or returns null
if the conversion cannot be performed.
Implementation
DateTime? letDateTimeOrNull(dynamic input) {
if (input is DateTime) {
return input;
}
if (input is String) {
return DateTime.tryParse(input);
}
if (input is Duration) {
return DateTime.fromMillisecondsSinceEpoch(input.inMilliseconds);
}
if (input is FirestoreTimestamp) {
return DateTime.fromMillisecondsSinceEpoch(input.millisecondsSinceEpoch);
}
if (input is int) {
return DateTime.fromMillisecondsSinceEpoch(input);
}
if (input is num) {
return DateTime.fromMillisecondsSinceEpoch(input.round());
}
return null;
}