Giter Site home page Giter Site logo

strftime's Introduction

strftime

strftime for JavaScript. Works in (at least) node.js and browsers. Supports localization and timezones. Most standard specifiers from C are supported as well as some other extensions from Ruby.

version 0.10.3 on npm node version 0.2 and up MIT License

Installation

node:

npm install strftime

bower:

bower install strftime

component:

component install samsonjs/strftime

yarn:

yarn add strftime

Or you can copy strftime.js wherever you want to use it, whether that's with a <script> tag or require or anything else.

Changelog

View the changelog.

Usage

    var strftime = require('strftime') // not required in browsers
    console.log(strftime('%B %d, %Y %H:%M:%S')) // => April 28, 2011 18:21:08
    console.log(strftime('%F %T', new Date(1307472705067))) // => 2011-06-07 18:51:45

If you want to localize it:

    var strftime = require('strftime') // not required in browsers
    var it_IT = {
        identifier: 'it-IT',
        days: ['domenica', 'lunedi', 'martedi', 'mercoledi', 'giovedi', 'venerdi', 'sabato'],
        shortDays: ['dom', 'lun', 'mar', 'mer', 'gio', 'ven', 'sab'],
        months: ['gennaio', 'febbraio', 'marzo', 'aprile', 'maggio', 'giugno', 'luglio', 'agosto', 'settembre', 'ottobre', 'novembre', 'dicembre'],
        shortMonths: ['gen', 'feb', 'mar', 'apr', 'mag', 'giu', 'lug', 'ago', 'set', 'ott', 'nov', 'dic'],
        AM: 'AM',
        PM: 'PM',
        am: 'am',
        pm: 'pm',
        formats: {
            D: '%m/%d/%y',
            F: '%Y-%m-%d',
            R: '%H:%M',
            X: '%T',
            c: '%a %b %d %X %Y',
            r: '%I:%M:%S %p',
            T: '%H:%M:%S',
            v: '%e-%b-%Y',
            x: '%D'
        }
    }
    var strftimeIT = strftime.localize(it_IT)
    console.log(strftimeIT('%B %d, %Y %H:%M:%S')) // => aprile 28, 2011 18:21:08
    console.log(strftimeIT('%B %d, %Y %H:%M:%S', new Date(1307472705067))) // => giugno 7, 2011 18:51:45

Some locales are bundled and can be used like so:

    var strftime = require('strftime') // not required in browsers
    var strftimeIT = strftime.localizeByIdentifier('it_IT')
    console.log(strftimeIT('%B %d, %Y %H:%M:%S')) // => aprile 28, 2011 18:21:08
    console.log(strftimeIT('%B %d, %Y %H:%M:%S', new Date(1307472705067))) // => giugno 7, 2011 18:51:45

The full list of bundled locales is below.

Time zones can be passed in as an offset from GMT in minutes.

    var strftime = require('strftime') // not required in browsers
    var strftimePDT = strftime.timezone(-420)
    var strftimeCEST = strftime.timezone(120)
    console.log(strftimePDT('%B %d, %y %H:%M:%S', new Date(1307472705067))) // => June 07, 11 11:51:45
    console.log(strftimeCEST('%F %T', new Date(1307472705067))) // => 2011-06-07 20:51:45

Alternatively you can use the timezone format used by ISO 8601, +HHMM or -HHMM.

    var strftime = require('strftime') // not required in browsers
    var strftimePDT = strftime.timezone('-0700')
    var strftimeCEST = strftime.timezone('+0200')
    console.log(strftimePDT('%F %T', new Date(1307472705067))) // => 2011-06-07 11:51:45
    console.log(strftimeCEST('%F %T', new Date(1307472705067))) // => 2011-06-07 20:51:45

Supported Specifiers

Extensions from Ruby are noted in the following list.

Unsupported specifiers are rendered without the percent sign. e.g. %q becomes q. Use %% to get a literal % sign.

  • A: full weekday name
  • a: abbreviated weekday name
  • B: full month name
  • b: abbreviated month name
  • C: AD century (year / 100), padded to 2 digits
  • c: equivalent to %a %b %d %X %Y %Z in en_US (based on locale)
  • D: equivalent to %m/%d/%y in en_US (based on locale)
  • d: day of the month, padded to 2 digits (01-31)
  • e: day of the month, padded with a leading space for single digit values (1-31)
  • F: equivalent to %Y-%m-%d in en_US (based on locale)
  • H: the hour (24-hour clock), padded to 2 digits (00-23)
  • h: the same as %b (abbreviated month name)
  • I: the hour (12-hour clock), padded to 2 digits (01-12)
  • j: day of the year, padded to 3 digits (001-366)
  • k: the hour (24-hour clock), padded with a leading space for single digit values (0-23)
  • L: the milliseconds, padded to 3 digits [Ruby extension]
  • l: the hour (12-hour clock), padded with a leading space for single digit values (1-12)
  • M: the minute, padded to 2 digits (00-59)
  • m: the month, padded to 2 digits (01-12)
  • n: newline character
  • o: day of the month as an ordinal (without padding), e.g. 1st, 2nd, 3rd, 4th, ...
  • P: "am" or "pm" in lowercase (Ruby extension, based on locale)
  • p: "AM" or "PM" (based on locale)
  • R: equivalent to %H:%M in en_US (based on locale)
  • r: equivalent to %I:%M:%S %p in en_US (based on locale)
  • S: the second, padded to 2 digits (00-60)
  • s: the number of seconds since the Epoch, UTC
  • T: equivalent to %H:%M:%S in en_US (based on locale)
  • t: tab character
  • U: week number of the year, Sunday as the first day of the week, padded to 2 digits (00-53)
  • u: the weekday, Monday as the first day of the week (1-7)
  • v: equivalent to %e-%b-%Y in en_US (based on locale)
  • W: week number of the year, Monday as the first day of the week, padded to 2 digits (00-53)
  • w: the weekday, Sunday as the first day of the week (0-6)
  • X: equivalent to %T or %r in en_US (based on locale)
  • x: equivalent to %D in en_US (based on locale)
  • Y: the year with the century
  • y: the year without the century, padded to 2 digits (00-99)
  • Z: the time zone name, replaced with an empty string if it is not found
  • z: the time zone offset from UTC, with a leading plus sign for UTC and zones east of UTC and a minus sign for those west of UTC, hours and minutes follow each padded to 2 digits and with no delimiter between them

For more detail see man 3 strftime as the format specifiers should behave identically. If behaviour differs please file a bug.

Any specifier can be modified with -, _, 0, or : as well, as in Ruby. Using %- will omit any leading zeroes or spaces, %_ will force spaces for padding instead of the default, and %0 will force zeroes for padding. There's some redundancy here as %-d and %e have the same result, but it solves some awkwardness with formats like %l. Using %: for time zone offset, as in %:z will insert a colon as a delimiter.

Bundled Locales

  • de_DE
  • en_CA
  • en_US
  • es_MX
  • fr_FR
  • it_IT
  • nl_NL
  • pt_BR
  • ru_RU
  • tr_TR
  • zh_CN

Contributors

License

Copyright 2010 - 2024 Sami Samhuri [email protected]

MIT license

strftime's People

Contributors

alexandrnikitin avatar andrewjpiro avatar andrewschaaf avatar aryan-debug avatar d48 avatar douglasep avatar forbeslindesay avatar ioayman avatar jzwinck avatar kawanet avatar kevin-jin avatar pdehaan avatar robcolburn avatar rystaf avatar samsonjs avatar stiang avatar tj avatar w0den 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  avatar  avatar  avatar  avatar

strftime's Issues

localization improvements

It would be nice, if strftime.localizeByIdentifier() also worked with just a 2-character language code, i.e. "de" instead of "de_DE".

And maybe something so we don't have to specify the difference in the formats to the default locale for strftime.localize()...

if Intl.DateTimeFormat is present, it should also be possible to generate a locale. At least the basics, the locale dependent formatters are a bit tricky, but we could fall back on the default locale there.

I can help out with some of this if you're interested.

Hours on day of UNIX epoch don't work correctly

strftimeUTC prints 01 for '%H instead of 00 when d.getTime() === 0, however only on the day of the UNIX epoch:

var strftimeUTC = require('strftime').strftimeUTC;
strftimeUTC('%F %T', new Date(0)) // '1970-01-01 01:00:00'

This doesn't seem to happen on other days:

strftimeUTC('%F %T', new Date(86400000)) // '1970-01-02 00:00:00'

This causes things to go a bit wrong when doing a stopwatch-like thing. A quick-fix is to add 86400000 (1 day) whenever using Date.setTime(), and subtract when using Date.getTime().

Off by a month

Might just be me being bad with dates?

var strftime = require('strftime');

var utcDate = new Date(1986, 8, 28, 15, 15);

strftime('%FT%TZ', utcDate);
// => '1986-09-28T15:15:00Z'

// expected: `1986-08-28T15:15:00Z`

Add to Bower directory

Hi again!

You added the bower.json in #45, but haven't yet submitted it to the directory!

bower register strftime git://github.com/samsonjs/strftime.git

As is, I need to do bower install samsonjs/strftime which is SO TOTALLY LIKE NINE CHARACTERS LONGER! πŸ˜„

X: equivalent to %r in en_US

README.md description is NOT correct:

X: equivalent to %D in en_US (based on locale)
x: equivalent to %T in en_US (based on locale)

strftime.js implementation:

en_US: {
    days: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday' ],
    shortDays: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],
    months: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],
    shortMonths: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
    ordinalSuffixes: [
        'st', 'nd', 'rd', 'th', 'th', 'th', 'th', 'th', 'th', 'th',
        'th', 'th', 'th', 'th', 'th', 'th', 'th', 'th', 'th', 'th',
        'st', 'nd', 'rd', 'th', 'th', 'th', 'th', 'th', 'th', 'th',
        'st'
    ],
    AM: 'AM',
    PM: 'PM',
    am: 'am',
    pm: 'pm',
    formats: {
        c: '%a %d %b %Y %X %Z',
        D: '%m/%d/%y',
        F: '%Y-%m-%d',
        R: '%H:%M',
        r: '%I:%M:%S %p',
        T: '%H:%M:%S',
        v: '%e-%b-%Y',
        X: '%r',
        x: '%D'
    }
},

Bug when specify partial hour timezone

var strftime = require('../strftime-min');
var testTime = new Date(1307472705067)
// for the timezone '-0730'
console.log(strftime.strftimeTZ("%F %r %z", testTime, '-0730'));
// 2011-06-07 12:21:45 PM -6.5-30
// the time and the timezone is wrong, i expect to get:
// 2011-06-07 11:21:45 AM -0730

tests

write some tests, the assert module is probably good enough. otherwise vows.

Way to return times in a specific time zone

I need to be able to return strings in a specific time zone, regardless of the timezone the current runtime is in. For instance, if I run this script and the local time zone is EST, but the provided time zone is PST, I'd like to render it as if it were PST.

missing format specifiers

%b - same as %h
%g - like %G, but without the century
%G - 4-digit year corresponding to the ISO week number (see %V).
%V - The ISO 8601 week number of the current year (01 to 53), where week 1 is the first week that has at least 4 days in the current year, and with Monday as the first day of the week
%x - from locale or '%D' (preferred date representation without the time)
%X - from locale or '%r' (preferred time representation without the date)

info (mostly) taken from http://www.w3schools.com/php/func_date_strftime.asp
good summary also at http://pubs.opengroup.org/onlinepubs/9699919799/functions/strftime.html

I needed %x and %X, listed the rest for completeness.

init(); causes small bug.

I noticed when you leave a todo comment after a init(); in JavaScript it causes a small bug in the tree.

Capture

Use standard timezone offsets instead of minutes in strftimeTZ

When working with dates, you'll usually see the timezone offset written like this: 2014-01-29T00:00:00-0500, as [-]HHMM without a separating colon. It would be great if we could somehow roll in a way to pass the timezone offset this way. Perhaps if you pass a string, like "-0500" (rather than -500), it could use the standard date offset, and if it's an integer, it could use the minutes offset. Maybe not the best idea, but I'm pretty sure that would work in a pinch.

What do you think?

strftime has no method 'localizedStrftime'

Inside a browser strftime has no method localizedStrftime.

Example from README doesn't work, instead this works:

var strftime_IT = localizedStrftime(it_IT);
console.log(strftime_IT('%B %d, %y %H:%M:%S')) // aprile 28, 2011 18:21:08

Milliseconds returning NaN

Hello,

I've been using strftime for some time now and never any problems with it, until I downloaded the latest version recently. It appears it has some kind of bug when displaying milliseconds.
In version 0.8.0 everything worked fine, but in version 0.9.0 it appears that time between milliseconds appears as 00NaN.

Running this script:

var testDate = function(){
for(var i = 0; i < 1000; i++){
var dateTime = strftime("%Y-%m-%d %H:%M:%S:%L")
console.log(dateTime)
}
}

On the left is what I got for version 0.9.0 and on the right version 0.8.0
screen shot 2015-05-29 at 6 57 04 pm

Do you have any previsions for this bug to be fixed? Is there anything I can configure in my computer so it works properly?

Thanks!

errors

I'm not able to use the module. Node process logs error saying date.getTime() (Line 330 of strftime.js) is not a function and if I change that, it logs error on another line. I didn't change the code except after receiving errors.

Error: Cannot find module 'strftime'

it seems like i cannot instal strftime globally using

npm install -g strftime

it works however when i install it locally. What could be the reason?

missing formats: %c, %x, %X

I've added 3 lines for this locally:

case 'c': return _strftime(locale.formats.c || '%a %d %b %Y %r %Z', d, locale);
case 'x': return _strftime(locale.formats.x || '%d.%m.%Y', d, locale); // de (DIN-5008) %d.%m.%Y en-US: %D
case 'X': return _strftime(locale.formats.X || '%T', d, locale); // de (ISO?) %T, en-us: %r

Problem with DST and UTC

I'm using strftime to create timelabel along a chart axis, and a customer noticed a glitch with the last DST change.
To test I dumped the dates around the DST change, the formatted string ("%F %T") for utc and the timezone offset onto the console and got this:

Sun Oct 30 2016 02:50:00 GMT+0200 (W. Europe Daylight Time) "2016-10-30 00:50:00" -120
Sun Oct 30 2016 02:00:00 GMT+0100 (W. Europe Standard Time) "2016-10-30 02:00:00" -60
Sun Oct 30 2016 02:10:00 GMT+0100 (W. Europe Standard Time) "2016-10-30 02:10:00" -60
Sun Oct 30 2016 02:20:00 GMT+0100 (W. Europe Standard Time) "2016-10-30 02:20:00" -60
Sun Oct 30 2016 02:30:00 GMT+0100 (W. Europe Standard Time) "2016-10-30 02:30:00" -60
Sun Oct 30 2016 02:40:00 GMT+0100 (W. Europe Standard Time) "2016-10-30 02:40:00" -60
Sun Oct 30 2016 02:50:00 GMT+0100 (W. Europe Standard Time) "2016-10-30 02:50:00" -60
Sun Oct 30 2016 03:00:00 GMT+0100 (W. Europe Standard Time) "2016-10-30 02:00:00" -60
Sun Oct 30 2016 03:10:00 GMT+0100 (W. Europe Standard Time) "2016-10-30 02:10:00" -60

If you're in the US, I assume you need to check with dates one week later.

module.exports

just a bit redundant to do strftime = require('strftime').strftime

Support for Date pseudo-subclasses

strftime doesn't appear to work with libraries like node-time which define kinda subclasses of Date.

In strftime/lib/index.js:60, you have this code:

function _strftime(fmt, d, locale, _useUTC) {
  // d and locale are optional so check if d is really the locale
  if (d && !(d instanceof Date)) {
    locale = d;
    d = undefined;
  }
  ..
}

Since the Date class can't be subclassed, there doesn't seem to be a way to use these libraries. I might've been able to work around this by converting a subclass instance into a native Date like so:

var date = new time.Date('2013-01-01 17:00', 'America/New_York');
var string = strftime('%H:%M', new Date(date.getTime()));
    // => "16:00" if you're in Central time

but this won't work with node-time's timezone feature, strftime will format in local time instead of the specified time zone.

performance regressions

This compares the original (slow) strftime with the initial perf improvement, strftimeV2, and then finally to the current master which is a candidate for v0.9. There have been regressions since merging so we should try to tighten things back up as much as possible. http://jsperf.com/strftime-optimization/5

Add bower.json

Hi!
I want to use this in a front-end app, which I dependency manage using Bower. You should totally create a bower.json file for this. Or alternately, let me know if you want me to do so and do a PR!

Possible bug with %U

This looks like a bug with %U:

console.log( strftime('%U', (new Date('03-25-2017 00:00:00'))) ) // 12
console.log( strftime('%U', (new Date('03-26-2017 00:00:00'))) ) // 13
console.log( strftime('%U', (new Date('03-27-2017 00:00:00'))) ) // 12
console.log( strftime('%U', (new Date('04-02-2017 00:00:00'))) ) // 13

changed %X in locale en_US

Before my last update %X resolved to a 24-hour timestring, now it gets me a 12-hour timestamp with AM/PM at the end.
While this feels right, all other strftime implementations I'm aware of seem to disagree with this.

Assertion fails

[ OK ] Exports

assert.js:92
throw new assert.AssertionError({
^
AssertionError: strftimeUTC("%C", Fri Jan 01 100 00:00:00 GMT+0200 (EET)) is "00", expected "01"
at _assertFmt (/private/tmp/strftime/test/test.js:26:12)
at Function.assert.format (/private/tmp/strftime/test/test.js:32:3)
at Object. (/private/tmp/strftime/test/test.js:44:10)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Function.Module.runMain (module.js:497:10)
at startup (node.js:119:16)
at node.js:901:3

remove deprecated API

  • export defaultStrftime instead of adaptedStrftime for CommonJS modules
  • export defaultStrftime instead of deprecatedStrftime for browsers / global namespace
  • remove adapter functions for deprecated API

%s off by 1000X

Error for strftime("%s", t): expected "1307472705", got "1307472705867"

Pull request coming soon.

Incorrect example in Readme.md

In Readme.md we have:

var strftime = require('strftime') // not required in browsers
var strftimePDT = strftime.timezone('-0700')
var strftimeCEST = strftime.timezone('+0200')
console.log(strftimePDT('%F %T', new Date(1307472705067))) // => June 07, 11 11:51:45
console.log(strftimeCEST('%F %T', new Date(1307472705067))) // => 2011-06-07 20:51:45

The %F %T specifier should not produce June 07, 11 11:51:45 on the 4th line. You should instead have 2011-06-07 11 11:51:45. Alternatively you might have meant to use the %B %d, %y %H:%M:%S specifier.

Unit tests fail when using TZ (UTC+12:00) Auckland, Wellington

In unit tests we create the test date using new Date(intValue) constructor which creates date in UTC format.

    // Tue, 07 Jun 2011 18:51:45 GMT
  , TestTime = new Date(1307472705067)

For TZ that significantly differ from UTC e.g. (UTC+12:00) Auckland, Wellington unit tests fail when we test days in local TZ

assert.format('%A', 'Tuesday') // Wednesday in UTC+12
assert.format('%a', 'Tue') // Wed in UTC+12
...
assert.format('%D', '06/07/11') // 06/08/11 in UTC+12
assert.format('%d', '07') // 08 in UTC+12

bug in %z format

In the non-UTC case, there's a small problem with handling the sign of the offset.
changing the return statement to

return (off < 0 ? '+' : '-') + pad(Math.abs(off / 60)) + pad(off % 60);

fixes things.

Account for DST offsets

I'm having trouble formatting a couple dates in November.

  • 2013-11-01 11:10PM
  • 2013-11-04 12:10PM

The first date renders properly, but the second date takes place after DST ends (November 2), so it's one hour off.

screen shot 2014-01-29 at 2 14 32 pm

Ideally, strftime would account for DST and take care of it behind the scenes.

%j is not padded by zeros!

According to the 'Supported Specifiers' section:

j is the day of the year, padded to 3 digits (001-366)

while:

console.log(strftime('%Y-%jT%H:%M:%S', new Date('2013-04-09T15:16:00.000Z')));

returns without a padded zero:

2013-99T11:16:00

but should be:

2013-099T15:16:00

It also appears that the function doesn't preserve the timezone but converts it to the browsers timezone.

Enumerate possible format results

I'm laying out some text with multiple dates and a format argument. I would like to know the maximum size of a formatted date. Calculating the size of all my formatted dates takes too much time for me. (After implementing this I realized I didn't really need it, but since I already did it, here it is)

_locale being private/not exported prevents implementing enumeration without modifying the library.

I forked the library and provided an exported enumerate function that was implemented basically by a copy paste of _processFormat. https://github.com/Linkviii/strftime

Excerpts of my demo-enum.js:

Enumerate %c: (Tue 07 Jun 2011 06:51:45 PM GMT) β†’
[
  [
    'Sun', 'Mon',
    'Tue', 'Wed',
    'Thu', 'Fri',
    'Sat'
  ],
  [ ' ' ],
  [ '08', '88' ],
  [ ' ' ],
  [
    'Jan', 'Feb', 'Mar',
    'Apr', 'May', 'Jun',
    'Jul', 'Aug', 'Sep',
    'Oct', 'Nov', 'Dec'
  ],
  [ ' ' ],
  [ '8888' ],
  [ ' ' ],
  [ '08', '88' ],
  [ ':' ],
  [ '08', '88' ],
  [ ':' ],
  [ '08', '88' ],
  [ ' ' ],
  [ 'AM', 'PM' ],
  [ ' ' ],
  [ 'GMT' ]
]
Max string length of '%A %B' 
costs 19 β†’ 'Wednesday September'

I'm not sure this is a feature this library would be interested in supporting, but I thought I'd leave this issue here in case anyone is interested.

set locale object

It'd be nice if this had support for passing in a locale object, so that you could print the date using different languages and whatnot.

Add option (%-) to not pad days and hours

In Ruby, I like to use this format:

Time::DATE_FORMATS[:day_name_long_at_time] = "%A, %B %-d, %Y, at %-I:%M %P"

Which gives me nice human-readable times like this:

'Thursday, October 4, 2012, at 5:00 pm'

I don't know if you're aiming for full feature parity with Ruby's strftime (probably not), but I noticed you had added some other nice Ruby extensions so I'm hoping you'll add this one.... because really, who wants to have their dates formatted as October 04 instead of October 4? :)

Here's the relevant section of ri strftime:

  The directive consists of a percent (%) character,
  zero or more flags, optional minimum field width,
  optional modifier and a conversion specifier
  as follows.

    %<flags><width><modifier><conversion>

  Flags:
    -  don't pad a numerical output.
    _  use spaces for padding.
    0  use zeros for padding.
    ^  upcase the result string.
    #  change case.
    :  use colons for %z.

Initialization issue

On Ubuntu 14.04, strftime version 0.9.0 and master branch at commit 8adfd97 I get an error on initialization of strftime.

Code:

strftime = require('strftime')

Error:

TypeError: 'undefined' is not a function (evaluating 'defaultStrftime.localize.bind(defaultStrftime)')


  /home/tom/project/node_modules/strftime/strftime.js:69 in adaptForwards
  /home/tom/project/node_modules/strftime/strftime.js:69 in adaptForwards
  /home/tom/project/node_modules/strftime/strftime.js:74
  /home/tom/project/node_modules/strftime/strftime.js:626
  /home/tom/project/node_modules/strftime/strftime.js:74
  /home/tom/project/node_modules/strftime/strftime.js:627
  /home/tom/project/node_modules/strftime/strftime.js:626
  /home/tom/project/node_modules/strftime/strftime.js:627

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.