본문 바로가기

Flutter-플러터/플러터 공부

Flutter : timeago 를 쓰는 방법

반응형

2 ways to convert DateTime to time ago in Flutter - Kindacode

 

2 ways to convert DateTime to time ago in Flutter - Kindacode

This article shows you 2 approaches to convert DateTime to time ago format in Flutter (and Dart, too), for example, 5 minutes ago, 1 day ago, 2 days

www.kindacode.com

코딩을 하면서 부족한 부분은 구글링을 한다. 

 

하지만 Flutter는 한국에서 아직 활성화 되어 있지 않아서인지 

 

deep한 내용이나 최신내용들은 영어문서로 찾아봐야 한다. 

 

그래서 영어 공부도 좀 할겸 Flutter 관련한 블로그들을 독해 해보려고 한다. 

 

더보기

This article shows you 2 approaches to convert DateTime to time ago format in Flutter (and Dart, too), for example, 5 minutes ago, 1 day ago, 2 days ago… The first one uses the difference() method provided by the DateTime class, and the second one uses a third-party plugin.

 

이 기사는 당신에게 DateTime을 time ago 포맷으로 바꿔주는 2가지 방법을 알려줄 것입니다. 예를들어 5분 전, 하루 전 , 이틀 전...

그 첫번째 방법은 DateTime 클래스에서 제공하는 difference() 함수 사용하는 것입니다. 두번째 방법은  플로그인을 사용하는 것입니다. 

 

 

더보기

Using the difference() method

This solution is for people who want to use as few third-party plugins as possible in their projects.

Define a self-made converting function:

 

 

이 해결책은 가능한 플러그인을 적게 쓰고 싶은 개발자에게 적합합니다. 

 

String convertToAgo(DateTime input){

//diff= 지금과, 입력된 시간의 차이 
  Duration diff = DateTime.now().difference(input);
  
  if(diff.inDays >= 1){
    return '${diff.inDays} day(s) ago';
  } else if(diff.inHours >= 1){
    return '${diff.inHours} hour(s) ago';
  } else if(diff.inMinutes >= 1){
    return '${diff.inMinutes} minute(s) ago';
  } else if (diff.inSeconds >= 1){
    return '${diff.inSeconds} second(s) ago';
  } else {
    return 'just now';
  }
}
void main() {
  DateTime time1 = DateTime.parse("2023-01-01 20:18:04Z");  //기준이 되는 시간
  print(convertToAgo(time1));

  DateTime time2 = DateTime.utc(2022, 12, 08); //기준이 되는 시간
  print(convertToAgo(time2));
}


위 코드를 입력하면 언제 실행했는지에 따라 다르게 나온다. 

더보기

The output depends on WHEN you run the code. Here is mine on January 08, 2022:

6 day(s) ago
31 day(s) ago

 

 단수 복수의 개념을 확인하면서 converting 함수를 개선할 수 있습니다.  괄호를 지우기 위해서요 

더보기

You can improve the converting function by checking between singular and plural nouns (day/days, hour/hours, minute/minutes, second/seconds) to remove the parentheses. For example:

 

if(diff.inDays > 1){
    return '${diff.inDays} days ago';
} else if(diff.inDays == 1){
    return 'a day ago';
}

 

 

 

더보기

Using a third-party plugin

This solution is for people who want to write as little code as possible.

The plugin we’ll use is called timeago.

1. Add timeago and its version to the dependencies section in your pubspec.yaml file by performing the following:

 

dart pub add timeago
flutter pub get
import 'package:timeago/timeago.dart' as timeago;



import 'package:timeago/timeago.dart' as timeago;

main() {
  final DateTime time1 = DateTime.parse("1987-07-20 20:18:04Z");
  final DateTime time2 = DateTime.utc(1989, 11, 9);

  print(timeago.format(time1));
  print(timeago.format(time2, locale: 'en_short'));
}

 

 

35 years ago 32 yr

플러그인을 사용하는 방법 

 

이 방법은 코드를 간단하게 작성해서 time ago를 사용하기를 원하는 사람을 위한 것입니다. 

 

더보기

Conclusion

We’ve walked through more than one technique to turn DateTime into the time ago format in Dart and Flutter. Choose the approach that suits your need. If you’d like to learn more about date-time stuff, take a look at the following articles:

결론 

 

우리는 DateTime 을  time ago로 변환하는 기술을 알게 되었습니다. 

당신한테 맞는 것으로 사용하세요, 

 

 


배운 영어 

 

 singular and plural nouns  : 단수, 복수 

parentheses : 괄호 

 

 

728x90
반응형