letDateTimeOrNull function

DateTime? letDateTimeOrNull(
  1. dynamic input
)

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;
}