valueAgoInput function

String valueAgoInput(
  1. String agoType,
  2. String agoInput
)

value of dynamic variable time ago sucess return YYYYMMDD|YYYYMMDDHHMMSS

// now: 2025-08-26T13:15:56
print(valueAgoInput('AGODATE', '1 DAY')); // 20250825
print(valueAgoInput('AGODATE', '1 WEEK')); // 20250819
print(valueAgoInput('AGODATE', '1 MONTH')); // 20250726
print(valueAgoInput('AGODATE', '1 YEAR')); // 20240826
print(valueAgoInput('AGODATETIME', '5 MINUTES')); // 20250826151056
print(valueAgoInput('AGODATETIME', '2 HOURS')); // 20250826131556

Implementation

String valueAgoInput(String agoType, String agoInput) {
  final allowAgoTypes = ['agodate', 'agodatetime'];
  agoType = agoType.toLowerCase();
  if (!allowAgoTypes.contains(agoType)) return '';

  final parsedTime = TimeAgoParser.parse(agoInput);
  if (parsedTime == null || (parsedTime.unit == TimeUnit.unknown)) return '';
  final pastDateTime = parsedTime.toDateTime();
  final iso8601 = pastDateTime.toLocal().toIso8601String().split('.').first;
  var [date, time] = iso8601.split('T');
  date = date.replaceAll('-', '');
  time = time.replaceAll(':', '');

  return switch (agoType) {
    'agodate' => date,
    'agodatetime' => '$date$time',
    _ => '',
  };
}