GithubHelp home page GithubHelp logo

rinukkusu / simple_moment Goto Github PK

View Code? Open in Web Editor NEW
46.0 3.0 27.0 68 KB

A simple implementation of the Moment.js features for relative time in Dart

License: BSD 3-Clause "New" or "Revised" License

Dart 100.00%

simple_moment's Introduction

simple_moment Pub Build Status

A simple implementation of the Moment.js features for relative time in Dart.

Usage

A simple usage example:

import 'package:simple_moment/simple_moment.dart';

main() {
    var secondsToAdd = Duration(seconds: 10);
    var dateForComparison = DateTime.now().add(secondsToAdd);
    var moment = Moment.now();

    // should print "in a few seconds"
    print(moment.from(dateForComparison));
    
    Moment rawDate = Moment.parse("2020-07-03");
      // should print "2020-08-03 00:00:00.000
      print(rawDate.add(months: 1));
    
      // should print "2019-07-03 00:00:00.000
      print(rawDate.subtract(years: 1));
    
      //should print "03-07-2020 00:00"
      print(rawDate.format("dd-MM-yyyy HH:mm"));
}

Locales

Set the locale for all usages of Moment:

Moment.setLocaleGlobally(new LocaleDe());

Set the locale only for the current instance of Moment:

var moment = new Moment.now().locale(new LocaleDe());

Adding your own locale:

Just create a class that implements ILocaleData and assign that to your Moment instance or set it globally.

Overwriting existing locales:

class ShortLocaleEn extends LocaleEn {
  String get seconds => '%is';

  String get aMinute => '%im';
  String get minutes => '%im';

  String get anHour => '%ih';
  String get hours => '%ih';

  String get aDay => '%id';
  String get days => '%id';
}

Using intl to format dates

// create new Moment instance with german locale
var moment = Moment.now().locale(LocaleDe(), useInFormat: true);

// initialize intl
await initializeDateFormatting(moment.usedLocale.localeString);

// format and print the current month in german
var formattedString = moment.format("LLLL");
print(formattedString);

Features and bugs

Please file feature requests and bugs at the issue tracker.

simple_moment's People

Contributors

devkabiir avatar friebetill avatar lennonjesus avatar martinrybak avatar moraleja39 avatar nguyenxdat avatar pekosong avatar ramoncarreras avatar redbayoub avatar rinukkusu avatar sadoge avatar sombochea avatar stevenosse avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

simple_moment's Issues

Format tokens?

What format token are supported to show a date/time in a a specific format? Can't find anything in the readme or docs. Would be awesome if all Moment.js formatting is applicable here as well.

expression of 'fromNow' is correct ?

Usually we want to express past time expression.
For example...

I made a post 2 minutes ago.
Then I open post list.
There should be expression '2 minutes ago'.

But now it shows 'in 2 minutes'.

This is right ?
or we need one more option like 'toNow' ?

What do you think about it ?
Please review it again.

Support dart 2.0

Please provide support for dart 2.0 and make compatible with latest flutter release

Any way to change locale at the moment?

In vanilla moment.js you can change the locale to say “3m” instead of “3 minutes”, “8s” instead of “8 seconds”, etc. by manually redefining the locale function in your JavaScript code. Is there a way to do that here or perhaps in the future?

Missing features from JS

Moment().week
and Moment.isBeforeOrCurrent and variants are not present in the current iteration, currently using implementations from DateTime to handle the gap in the meantime

Support month locale

Like the title, it would be awesome if the library can support locale month.
I mean, now it's possible to get the locale but unable to set month local. If set Moment.setLocaleGlobally(locale); and then try to get the month with (see Moment Docs) Moment.now().format('LLLL') you will always get the month in EN locale.

Am I wrong something or for now this feature doesn't exist?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.