Giter VIP home page Giter VIP logo

angular-timeago's Introduction

angular-timeago Analytics

Angular directive/filter/service for formatting date so that it displays how long ago the given time was compared to now.

This project is based off of a thread on Angular Google Groups. The person who started the thread, @lrlopez, gave me permission to start a repo using the code he wrote initially. Thanks to @lrlopez and other contributors in the thread.

Check out the demo here.

Install via Bower

bower install --save angular-timeago

Reference in module

var app = angular.module('ngApp', [
  'yaru22.angular-timeago'
]);
{{myDate | timeAgo}}

Displays time ago since myDate. myDate can be time in milliseconds since January 1st 1970 (see MDN Date.prototype.getTime) or an ISO 8601 string (see MDN Date.prototype.toISOString)

{{myDate | timeAgo:'MM/dd/yyyy'}}

The format filter will only take effect if you've configured the service to display the full date after a certain number of seconds using the fullDateAfterSeconds setting. In this scenario, it will use the Angular date filter with this format string.

<p>You were born <time-ago from-time='{{ birthDate }}'></time-ago></p>
<p>You were born <time-ago from-time='{{ birthDate }}' format='MM/dd/yyyy'></time-ago></p>

timeAgo has several configurable settings to tweak the default behavior.

angular.config(function (timeAgoSettings) {
    timeAgoSettings.<setting> = <value>;
});

Default: false

timeAgoSettings.allowFuture = true;

This will allow timeAgo to format dates in the future as well. e.g. "2 hours from now"

Default: null

<html lang='en_US'>
...
// even though the page's setting is 'en_US', timeAgo filtered
// dates will render in 'es_LA'
timeAgoSettings.overrideLang = 'es_LA';

See Language Support for languages this library supports.

Default: null

// After 24 hours, display the date normally.
var oneDay = 60*60*24;
timeAgoSettings.fullDateAfterSeconds = oneDay;

This configures timeAgo to use it's own filters (about a minute ago, about 4 hours ago, etc) until fullDateAfterSeconds seconds have passed, and then it will display the date as normal. This is useful when combined with a date format filter.

Default: 1000

timeAgoSettings.refreshMillis = 60000;

This configures timeAgo to use a different refresh interval (in milliseconds). Note that this setting needs to be set early in the run function before the nowTime factory is used by a directive/filter/controller.

Default:

{
  secondsToMinute: 45, // in seconds
  secondsToMinutes: 90, // in seconds
  minutesToHour: 45, // in minutes
  minutesToHours: 90, // in minutes
  hoursToDay: 24, // in hours
  hoursToDays: 42, // in hours
  daysToMonth: 30, // in days
  daysToMonths: 45, // in days
  daysToYear: 365, // in days
  yearToYears: 1.5 // in year
}

This configure timeAgo at which points changing the string format. For example, the default behavior will display less than a minute agountil 45 seconds, then it will display about a minute.

angular-timeago currently supports the following languages:
ca_ES, de_DE, en_US, es_LA, fr_FR, he_IL, hu_HU, it_IT, nl_NL, pl_PL, pt_BR, sv_SE, zh_CN, zh_TW.

If you want more languages: feel free to contribute! The language is determined by the string in document.documentElement.lang which you can set in your HTML markup:

<html lang="en_US"></html>

Or directly in JS:

window.document.documentElement.lang = 'en_US';

Or configure the service to override the default language:

angular.config(function (timeAgoSettings) {
  timeAgoSettings.overrideLang = 'es_LA';
});

You can also add additional or alter existing languages at runtime by extending the service:

angular.config(function (timeAgoSettings) {
  timeAgoSettings.strings.en_US = {
    // appropriate keys here
  };
});

If you want to add a new language to the open source project, please refer to section Add a new language.

To add a new language if the one you want is missing :

  • create a new file into the languages folder : src/languages/time-ago-language-xx_XX.js
  • in that file, set your language definition as this :
'use strict';

angular.module('yaru22.angular-timeago').config(function(timeAgoSettings) {
  timeAgoSettings.strings['xx_XX'] = {
    ... TODO =) ...
  }
});

Language pickup

By adding many new language to the project, the library will get bigger and bigger overtime. If you need only few languages, you may want no to embedded all the available languages. So that, instead of linking to the full library like this :

<script src="bower_components/angular-timeago/dist/angular-timeago.min.js"></script>

you may prefer to pickup only the languages you want :

<script src="bower_components/angular-timeago/dist/angular-timeago-core.min.js"></script>
<script src="bower_components/angular-timeago/src/languages/time-ago-language-en_US.js"></script>

In that case, don't forget to concat your JS files into your own worklow.

Testing

In order to run the e2e tests you might need to install a Selenium server via:

node ./node_modules/grunt-protractor-runner/scripts/webdriver-manager-update

And then use grunt to run all tests (unit and e2e):

angular-timeago's People

Contributors

astik avatar bjoernklose avatar carlos avatar creever avatar dhknudsen avatar eyurdakul avatar fauria avatar fmoliveira avatar ilgianfra avatar jcsena avatar jgr3go avatar jharting avatar josowsky avatar kalbasit avatar leonzinger avatar maikelsgit avatar maximaximum avatar olegdater avatar patrik7 avatar pilwon avatar piotrplenik avatar raffaelecalza avatar thunder-dan avatar w3blogfr avatar xiangming avatar xz64 avatar yaru22 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  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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

angular-timeago's Issues

Disable timeago when printing

In my opinion it makes sense to disable the timeago function when printing a page.

I know that printing can be detected with window.matchMedia.

In my view this would be a sensible default behaviour, but at least it should be available as an option.

bower.json "main" missing

Hi Brian
Could you please add:
"main": "src/timeAgo.js",
to bower.json so it would look like:
{
"author": {
"name": "Brian Park",
"email": "[email protected]"
},
"main": "src/timeAgo.js",
...

It will allow to be successfully used with grunt build. Now it triggers error because it don't know where your script is.

Make it possible to allow or disallow future stamps per instance

As far as I can tell from the instructions I'm limited to setting this globally by updating the value in the service. It would be really nice if I could set this on a per-stamp-basis.

Currently I have a case where at one location I want to allow stamps in the future, and at another I want to disallow, this can be on one page. If this is somehow possible, please do tell, but if not, it would be great if you could add an additional scope parameter that can be set to overrule this per instance.

Specific time ago with breakpoints?

I need to display exact time ago in counter fashion, like:

13s ago
1min 3s ago
1h 33min ago
13h ago
1d ago
1d 3h ago
2w 3d ago
3w ago
1m 3w ago
3m ago
1y ago
1y 6m ago
2y ago
3y ago

I just noticed your breakpoint strings have only one value assignment, not for example minutes and seconds separately?

Assign class to timeAgo directive base on value being a past or future value.

I needed a way to style values based on them being past or future. Not sure if this is the correct way to do this but I found it very useful. Hopefully this information can help someone else who needs it.

link: function(scope, elem) {
      var fromTime;

      // Track changes to fromTime
      scope.$watch('fromTime', function(value) {
        fromTime = timeAgo.parse(scope.fromTime);
      });

      // Track changes to time difference
      scope.$watch(function() {
        return nowTime() - fromTime;
      }, function(value) {
            var elemHandle = angular.element(elem);
            elemHandle.text(timeAgo.inWords(value, fromTime, scope.format));

          if(fromTime < nowTime()){
              if(elemHandle.hasClass('time-ago-future')){
                  elemHandle.removeClass('time-ago-future');
              }
              if(!elemHandle.hasClass('time-ago-past')){
                  elemHandle.addClass('time-ago-past');
              }
          }else{
              if(elemHandle.hasClass('time-ago-past')){
                  elemHandle.removeClass('time-ago-past');
              }
              if(!elemHandle.hasClass('time-ago-future')){
                  elemHandle.addClass('time-ago-future');
              }
          }
      });
    }

Timezone aware

Hi,

I am formatting the time in ISO format in UTC:
2016-05-31T19:22:29

I was hoping timeago would move this to client's machine timezone, before computing the offset.

Is there a way to switch this on? Possibly in combination with other angular plugin?

Failed to instantiate

Installed with bower and tried to include in my ionic project, however it shows this error:

ionic.bundle.js:13380
Uncaught Error: [$injector:modulerr] Failed to instantiate module app due to:
Error: [$injector:modulerr] Failed to instantiate module yaru22.angular-timeago due to:
Error: [$injector:nomod] Module 'yaru22.angular-timeago' is not available! You either misspelled the module name or forgot to load it. If registering a module ensure that you specify the dependencies as the second argument.
http://errors.angularjs.org/1.4.3/$injector/nomod?p0=yaru22.angular-timeago
at http://localhost:8100/lib/ionic/js/ionic.bundle.js:13380:12
at http://localhost:8100/lib/ionic/js/ionic.bundle.js:15270:17
at ensure (http://localhost:8100/lib/ionic/js/ionic.bundle.js:15194:38)
at module (http://localhost:8100/lib/ionic/js/ionic.bundle.js:15268:14)
at http://localhost:8100/lib/ionic/js/ionic.bundle.js:17674:22
at forEach (http://localhost:8100/lib/ionic/js/ionic.bundle.js:13648:20)
at loadModules (http://localhost:8100/lib/ionic/js/ionic.bundle.js:17658:5)
at http://localhost:8100/lib/ionic/js/ionic.bundle.js:17675:40
at forEach (http://localhost:8100/lib/ionic/js/ionic.bundle.js:13648:20)
at loadModules (http://localhost:8100/lib/ionic/js/ionic.bundle.js:17658:5)
http://errors.angularjs.org/1.4.3/$injector/modulerr?p0=yaru22.angular-time…%3A%2F%2Flocalhost%3A8100%2Flib%2Fionic%2Fjs%2Fionic.bundle.js%3A17658%3A5)
at http://localhost:8100/lib/ionic/js/ionic.bundle.js:13380:12
at http://localhost:8100/lib/ionic/js/ionic.bundle.js:17697:15
at forEach (http://localhost:8100/lib/ionic/js/ionic.bundle.js:13648:20)
at loadModules (http://localhost:8100/lib/ionic/js/ionic.bundle.js:17658:5)
at http://localhost:8100/lib/ionic/js/ionic.bundle.js:17675:40
at forEach (http://localhost:8100/lib/ionic/js/ionic.bundle.js:13648:20)
at loadModules (http://localhost:8100/lib/ionic/js/ionic.bundle.js:17658:5)
at createInjector (http://localhost:8100/lib/ionic/js/ionic.bundle.js:17584:11)
at doBootstrap (http://localhost:8100/lib/ionic/js/ionic.bundle.js:14942:20)
at bootstrap (http://localhost:8100/lib/ionic/js/ionic.bundle.js:14963:12)
http://errors.angularjs.org/1.4.3/$injector/modulerr?p0=app&p1=Error%3A%20%…3A%2F%2Flocalhost%3A8100%2Flib%2Fionic%2Fjs%2Fionic.bundle.js%3A14963%3A12)

Timezone support

Is it possible to have timeago detect the browsers timezone and adjust the display text accordingly?

Basic Filter timeAgo not updating

I'm using Basic filter timeAgo {{upcomingTask | timeAgo}} and using future. I'm getting "50 minutes remaining" and showing "50 minutes remaining" until i refresh the page. Without refreshing the page, i need it to be autoupdate like "49 minutes remaining", "48 minutes remaining". And also I'm using $interval to update that timeago value after every 1 minute. but its not updating. How do i fix?
@yaru22

Don't run the timeout each second

At the moment the filter uses an interval of 1 second to check if the value has to be changed. Since each call to $timeout will make the digest cycle run it's quite a waste of performance. I know we're talking about a little bit of performance over here, but every save is a win.

Instead of running it each second it would make more sense to check the possibility of a future update and set the timeout delay based on that.

tag 0.1.5

version 0.1.5 has been bumped on the meta files but no git tags preventing stable installation over bower.

Cannot install npm packages due to incorrect package version definition

When running npm install over a fresh checkout, you get the following error:

> [email protected] install /Users/carlos/Code/angular-timeago/node_modules/karma-phantomjs-launcher/node_modules/phantomjs
> node install.js

Download already available at /var/folders/rg/jymh52ld7ygd5kt6xqr88wn00000gn/T/phantomjs/phantomjs-1.9.7-macosx.zip
Extracting zip contents
Copying extracted folder /var/folders/rg/jymh52ld7ygd5kt6xqr88wn00000gn/T/phantomjs/phantomjs-1.9.7-macosx.zip-extract-1397589841766/phantomjs-1.9.7-macosx -> /Users/carlos/Code/angular-timeago/node_modules/karma-phantomjs-launcher/node_modules/phantomjs/lib/phantom
Writing location.js file
Done. Phantomjs binary available at /Users/carlos/Code/angular-timeago/node_modules/karma-phantomjs-launcher/node_modules/phantomjs/lib/phantom/bin/phantomjs
npm ERR! peerinvalid The package karma does not satisfy its siblings' peerDependencies requirements!
npm ERR! peerinvalid Peer [email protected] wants karma@~0.10.0
npm ERR! peerinvalid Peer [email protected] wants karma@>=0.9.3
npm ERR! peerinvalid Peer [email protected] wants karma@>=0.9
npm ERR! peerinvalid Peer [email protected] wants karma@>=0.9
npm ERR! peerinvalid Peer [email protected] wants karma@>=0.9
npm ERR! peerinvalid Peer [email protected] wants karma@>=0.9
npm ERR! peerinvalid Peer [email protected] wants karma@>=0.9
npm ERR! peerinvalid Peer [email protected] wants karma@>=0.9
npm ERR! peerinvalid Peer [email protected] wants karma@>=0.9
npm ERR! peerinvalid Peer [email protected] wants karma@>=0.11.14
npm ERR! peerinvalid Peer [email protected] wants karma@>=0.9

npm ERR! System Darwin 13.1.0
npm ERR! command "/usr/local/Cellar/node/0.10.26/bin/node" "/usr/local/bin/npm" "install"
npm ERR! cwd /Users/carlos/Code/angular-timeago
npm ERR! node -v v0.10.26
npm ERR! npm -v 1.4.3
npm ERR! code EPEERINVALID
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR!     /Users/carlos/Code/angular-timeago/npm-debug.log
npm ERR! not ok code 0

Some of the libraries used by you implementation required different versions of karma.

Issue With displaying 23 hours and converting to Date Format

I am overriding the timeAgoSettings as follows:

timeAgoSettings.breakpoints = {
secondsToMinute: 60, // in seconds
secondsToMinutes: 120, // in seconds
minutesToHour: 59, // in minutes
minutesToHours: 120, // in minutes
hoursToDay: 24, // in hours
hoursToDays: 48, // in hours
daysToMonth: 30, // in days
daysToMonths: 60, // in days
daysToYear: 365, // in days
yearToYears: 2 // in year
}

    timeAgoSettings.strings['en_US'] = {
        prefixAgo: null,
        prefixFromNow: null,
        suffixAgo: '',
        suffixFromNow: 'from now',
        seconds: 'Just now',
        minute: 'a minute ago',
        minutes: '%d minutes ago',
        hour: 'an hour ago',
        hours: '%d hours ago',
        day: 'a day',
        days: '%d days',
        month: 'a month',
        months: '%d months',
        year: 'a year',
        years: '%d years',
        numbers: []
    };

And I am displaying date: 'MMM dd @ HH:mm' format after 24 hours. Everything works fine until "22 hours ago" But after that I am seeing the "23 hours ago" only for 30 minutes and 24 hours for other 30 minutes, And then date format is changing.

Suppress output when date is null, instead of "NaN years ago"

If I put this in a template

{{row.timestamp | timeAgo}}

and row.timestamp is null or the property doesn't exist, the output is "NaN years ago". In my opinion that output is never intended by the developer or helpful for the user.

Instead, I propose the output should be null or an empty string. This would be analogous to what happens for null values if you do not use timeAgo. If row.timestamp is null and the template contains

{{row.timestamp}}

the output is empty.

Implementing this would also be useful for developers who want to leave some cells in a table empty, when there is no meaningful date to display for a particular row.

For example, a web-based game may have an Achievements page with a table with the columns "Name" and "Unlocked date". The unlocked achievements in the table would have dates in the second column, but the locked achievements would not.

Dates in the future get "ago" rather than "from now"

I'm using the directive in haml like this:

.course{ ng: { repeat: 'course in courses() track by $index' } } 
    # ... other code ...
    .col-lg-4
        %h3
            {{ course.start_date }}
            %time-ago(from-time='{{ course.start_date }}T00:00:00Z') 

Which produces the following for me:

<div class="col-lg-4">
    <h3 class="ng-binding">
        2015-03-23
        <time-ago from-time="2015-03-23T00:00:00Z">2 months ago</time-ago>
    </h3>
</div>

oplerno - open learning organization - high-quality education for students from all corners of the globe

use provider to setup settings

Currently the only option to change settings is to use settings property of service.

I suggest to make this default settings private and add access to it via provider:

angular
    .module('app', ['yaru22.angular-timeago'])
    .config(function (timeAgoProvider) {
        timeAgoProvider.setSettings({
        });
        timeAgoProvider.addTranslation('ru_RU', {
            prefixAgo: null,
            prefixFromNow: null,
            suffixAgo: 'назад',
            // ...
            })
        })
    })
;

custom formats

can we configure it to display own custom formats
So the messages can be displayed as follows:
“Just now”- when the time is less then 1 min
After 1 min but within the hour - 2,3,4 > 59 mins ago
After one hour but within the same day
1:32 PM
Yesterday at 1:32 PM
After yesterday but within same year - “15 July, 1:32 PM”
(before current year) - “15 July, 2016”

Do I need both JS files from the dist folder?

The dist folder has multiple JS files. Do I need both angular-timeago-core.min.js and angular-timeago.min.js? Do I need to include both for this library to work? Looking for to use it in its most basic way. Thanks.
`

tag version 0.2.5

When installing with bower for version ~0.2 only version 0.2.4 is downloaded because there is no tag for version 0.2.5 - please tag the code accordingly, otherwise one is forced to use the master branch directly "angular-timeago" : "yaru22/angular-timeago#master"

Easier way to add new languages

Here is the way we add a new language dynamicly :

angular.module('mfgApp').run(function(timeAgo) {
    timeAgo.settings.strings.zh_CN = { ... };
});

This is handy as we have a new file for each new language.
That way, angular-timeago sources can be available like this :

  • src/timeAgo.js
  • src/timeAgo-language-en.js
  • src/timeAgo-language-en_US.js
  • src/timeAgo-language-zh-CN.js
  • src/timeAgo-language-fr.js
  • ...

Adding a new language would be a matter of adding a new file and not modifying existing source code. It would be way easier to merge pull request.

In the above code example, languages are added at runtime (run phase), it would be better to do that at config phase.
The easier way to do so would be to set "timeAgo.settings" as an angular constant. New language would be added like this :

// into timeAgo.js
angular.module('yaru22.angular-timeago').constant('timeAgoSettings', {
    refreshMillis: 60000,
    allowFuture: false,
    overrideLang : null,
    fullDateAfterSeconds : null,
    strings: { }
});

// into timeAgo-language-en_US.js
angular.module('yaru22.angular-timeago').config(function(timeAgoSettings){
   timeAgoSettings.strings['en_US'] = {
      ...
   }
});

// into timeAgo-language-it_IT.js
angular.module('yaru22.angular-timeago').config(function(timeAgoSettings){
   timeAgoSettings.strings['it_IT'] = {
      ...
   }
});

As a bonus, it would expose other angular-timeago settings as well =)

If you're interested, I gladly do a fork with that approach and PR it back to you.

angular 1.3 support

Big thanks for the project. I found it working with angular 1.3 with no obvious issues. Would you update bower.json dependency, please?

Ng-repeat not working well with this

Hi,

I have a simple ng-repeat that has a list of datestimes I'm formatting with this plugin.

            <tr ng-repeat="item in items | orderBy:'updatedAt':true track by $index">
            <td><time-ago from-time="{{item.updatedAt}}"></time-ago>{{item.updatedAt}}</td>

This acts wild! When I add a new item to the top of the list, it gets sorted right by angularjs, but the time-ago doesn't seem to update. If the earliest one was 8 minutes ago, when I add another one with the current time, it says 8 minutes, and pushes all the others down the line, so the one at 8 minutes now replaces the one at 12 minutes, and the one at 12 minutes replaces the one at 16 minutes, and so on. I know the times are right, as indicated by the datetime to the side of it, which is the same value, just raw. Any idea why this might be happening?

asdfasfd 8 minutes"2016-02-11T06:52:20.870Z"
bbbbbbbb 8 minutes"2016-02-11T06:45:47.634Z"

Time is not being updated

Hi, thanks for this great plugin!

I have the problem that my time is not being updated

When I open your demo page and I leave it open the time is automatically updated every minute.
In my situation when I open my page the time is only being updated on page load but when I leave the page open for a few minutes time is not being updated anymore.
This is how I format my time in my page {{activitie.start_date | timeAgo}}
this time item is in a ng-repeat div (I don't know if that has something to do with it).

Thanks!

update readme to contain information about API

The current version of the readme doesn't contain any sample code. It would be great to know how to use the filter and extend the languages etc.. without looking at the code.

If you need any help I'm happy to contribute and provide pull-requests! :)

Good job 👍

Jumps from 45 seconds to 1 minute

When using the below settings the time jumps from 45 seconds to a minute. Is there a reason for this?

Thanks!

 {
        prefixAgo: null,
        prefixFromNow: null,
        suffixAgo: null,
        suffixFromNow: null,
        seconds: '%ds',
        minute: a'1m',
        minutes: '%dm',
        hour: '1h',
        hours: '%dh',
        day: '1d',
        days: '%dd',
        month: '1m',
        months: '%dm',
        yeaar: '1y',
        years: '%dy'
    }

Error: Invalid Date toISOString@[native code]

Hi, I'm using timeago with my ionic project. When I emulate on my browser the timeago is working fine, however I tested on a real device (iOS 9.2) and it is not working.

I have the following filter to convert dates:

app.filter('dateToISO', function() {
  return function(input) {
    input = new Date(input+'').toISOString();
		return  input ? input : '';
  };
})

I am fetching the dates from MySQL in this format as example:
2016-11-06 21:13:42

And inside my template I am using time ago as this example:

user answered {{ feed.QuestionAddedDate | dateToISO | timeAgo }}

Inside the logs on XCode is showing the following error:

2016-11-08 23:30:49.269 myApp[2897:1210215] ERROR: Error: Invalid Date
toISOString@[native code]
file:///var/mobile/Containers/Bundle/Application/1A748163-A9C3-486F-BB78-66E3EE8C18B3/myApp.app/www/js/app.js:34:43
fn
expressionInputWatch@file:///var/mobile/Containers/Bundle/Application/1A748163-A9C3-486F-BB78-66E3EE8C18B3/myApp.app/www/lib/ionic/js/ionic.bundle.js:27439:47
$digest@file:///var/mobile/Containers/Bundle/Application/1A748163-A9C3-486F-BB78-66E3EE8C18B3/myApp.app/www/lib/ionic/js/ionic.bundle.js:28987:43
$apply@file:///var/mobile/Containers/Bundle/Application/1A748163-A9C3-486F-BB78-66E3EE8C18B3/myApp.app/www/lib/ionic/js/ionic.bundle.js:29263:31
tick@file:///var/mobile/Containers/Bundle/Application/1A748163-A9C3-486F-BB78-66E3EE8C18B3/myApp.app/www/lib/ionic/js/ionic.bundle.js:24396:42

Thanks for any help!

timeAgo filter directive not updating since angular 1.2

https://plnkr.co/edit/AbAMrP0Mm8Y92tBajTAD?p=preview

I prefer the filter directive style but it does not appear to update since angular 1.2. You can see all of the angular versions I tried in the plnkr. 1.2.28 works, but nothing more recent. (I didn't try angular 2+)

I see that #36 appears to be others reporting the same issue, but they just switched to the directive form, which still appears to work, instead of identifying the likely angular compatibility issue.

Thank you so much!

Update the dist folder

Recently I fixed a punctuation error in the hour field of italian strings but in the dist folder both files timeago.js and the minified file still have the error.

Here is the commit 0de0131

Should I open a new pull request where there is the updated string in both files?

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.