Skip to content
Commits on Dec 17, 2012
  1. Merge pull request #5 from JamesCropcho/next

    Invalid UTF-8 character in extras.js
    committed Dec 17, 2012
  2. @JamesCropcho
Commits on Jan 11, 2012
  1. Merge pull request #1 from ianso/next

    fix for ago / before functions of datejs
    committed Jan 11, 2012
  2. Merge pull request #2 from erikreedstrom/next

    Timezones and Timezone offsets now parse correctly
    committed Jan 11, 2012
  3. Timezones and Timezone offsets now parse correctly

    - fixed timezone implementation for ISO8601 and RFC3339 formats
    - added ability to parse milliseconds in accordance with ISO8601/RFC3339
    - updated toISOString to output 3 digit milliseconds in accordance with RFC3339 format
    - added specs for new functionality
    
    Other changes
    - removed build directory as newer frameworks typically contain asset pipelines and JS uglifiers
    - removed outdated changelist as it is no longer required
    - TODO updated
    Erik Reedstrom committed Jan 11, 2012
Commits on Nov 1, 2011
  1. @ianso
Commits on Aug 29, 2011
Commits on Aug 24, 2011
  1. Provide a way to bias the dates parsed to either the past or the future

    Biasing is signaled by setting the `bias` property to `past` or `future`
    on an object that is passed as the second optional argument to
    `Date.parse()`.
    committed Aug 23, 2011
Commits on Aug 23, 2011
  1. Update README.

    committed Aug 23, 2011
  2. Improving output.

    committed Aug 23, 2011
  3. Add task to run tests.

    committed Aug 23, 2011
Commits on Aug 22, 2011
  1. Ensure parsing 'now' works.

    committed Aug 22, 2011
  2. Greatly simplify some logic.

    committed Aug 22, 2011
Commits on Aug 20, 2011
Commits on Aug 19, 2011
  1. Fix Chronic tests by ensuring the hour and minute are set along with the

    day on relative date tests.
    committed Aug 19, 2011
Commits on Nov 5, 2008
  1. No commit message

    geoff@coolite.com committed Nov 5, 2008
Commits on May 14, 2008
  1. --------------------

    2008-05-12 [geoffrey.mcgill]
    Revision #191
    
    1.  Added .same() function to sugarpak.js. The new .same() function will compare two date objects to 
    	determine if they occur on/in exactly the same instance of the given date part.
    	
    	The function .same() must be followed by a date part function (example: .day(), .month(), .year(), etc).
    	
    	An optional Date can be passed in the date part function. If now date is passed as a parameter, 'Now' is used. 
    	
    	Scenario: Determine if two dates fall on the exact same day.
        
        Example
        
        var d1 = Date.today(); // today at 00:00
        var d2 = new Date();   // exactly now.
    
        // Do they occur on the same day?
        d1.same().day(d2); // true
        
         // Do they occur on the same hour?
        d1.same().hour(d2); // false, unless d2 hour is '00' (midnight).
        
        // What if it's the same day, but one year apart?
        var nextYear = Date.today().add(1).year();
    
        d1.same().day(nextYear); // false, because the dates must occur on the exact same day. 
        
        
        Scenario: Determine if a given date occurs during some week period 2 months from now. 
         
        Example
        
        var future = Date.today().add(2).months();
        return someDate.same().week(future); // true|false;
        
    2.  Added Date.prototype.toObject() function to sugarpak.js. The .toObject will return an object literal of all the date parts.
    	
    	Example
    	
    	var o = new Date().toObject();
    	
    	// { year: 2008, month: 4, week: 20, day: 13, hour: 18, minute: 9, second: 32, millisecond: 812 }
    	
    	The object properties can be referenced directly from the object.
    	
    	alert(o.day);  // alerts "13"
    	alert(o.year); // alerts "2008"
    
    3.  Added Date.fromObject(config) to sugarpak.js. The .fromObject will return a new Date based on the config properties.
    
    	Example
    	
    	var o = someDate.toObject();
    	return Date.fromObject(o); // will return the same date as "someDate"
    
        var o2 = {month: 1, day: 20, hour: 18}; // birthday party!
        Date.fromObject(o2);
        
    --------------------
    geoff@coolite.com committed May 14, 2008
Commits on May 13, 2008
  1. --------------------

    2008-05-12 [geoffrey.mcgill]
    Revision #190
    
    1.  Added .today() equality check function. Checks to determine if the current date instance occurs 
        during Today. Must be preceded by the .is() function.
    
        Example
    	
        someDate.is().today();    // true|false
        new Date().is().today();  // true
        Date.today().is().today();// true
        Date.today().add(-1).day().is().today(); // false
    	
    --------------------
    geoff@coolite.com committed May 13, 2008
Commits on May 8, 2008
  1. --------------------

    2008-05-07 [geoffrey.mcgill]
    Revision #189
    
    1.  Fixed bug in TimePeriod. See http://code.google.com/p/datejs/issues/detail?id=39
    
    	Example
    	
    	var start = new Date();
    	var end = Date.today().add(15).days();
    	var ts = new TimePeriod(start, end);
    
    	ts.getDays(); // 14
    
    --------------------
    geoff@coolite.com committed May 8, 2008
Commits on May 5, 2008
  1. No commit message

    geoff@coolite.com committed May 5, 2008
  2. No commit message

    geoff@coolite.com committed May 5, 2008
  3. No commit message

    geoff@coolite.com committed May 5, 2008
Commits on Apr 26, 2008
  1. No commit message

    geoff@coolite.com committed Apr 26, 2008
  2. No commit message

    geoff@coolite.com committed Apr 26, 2008
  3. --------------------

    2008-04-25 [geoffrey.mcgill]
    Revision #182
    
    1.  Small correction in core.js and extras.js to add an extra space in a couple functions so they would
    	pass JSLint (http://www.jslint.com) in white-space strict mode.
    
    2.  Revised online wiki documentation style so it's easier to anchor link to specific functions. 
    
    	Example
    	
    	http://code.google.com/p/datejs/wiki/APIDocumentation#isLeapYear
    
    3.  Added cross linking (See Also) between some related documentation items. 
    
    4.  Added Date.prototype.isAfter. Determines if this date occurs after the date to compare to.
    	See http://code.google.com/p/datejs/wiki/APIDocumentation#isAfter
    	
    	Example
    
    	var tomorrow = new Date().add(1).day();	
    	Date.today().isAfter(tomorrow); // false
    	Date.today().isBefore(tomorrow); // true
    
    	var yesterday = new Date().add(-1).day();
    	Date.today().isAfter(yesterday); // true
    	Date.today().isBefore(yesterday); // false
    
    	// No date to compare to...	
    	Date.today().isAfter(); // false
    	Date.today().isBefore(); // true
    
    5.  Added Date.prototype.isBefore. Determines if this date occurs before the date to compare to.
    	See http://code.google.com/p/datejs/wiki/APIDocumentation#isBefore
    
    	Example
    
    	var tomorrow = new Date().add(1).day();	
    	Date.today().isAfter(tomorrow); // false
    	Date.today().isBefore(tomorrow); // true
    
    	var yesterday = new Date().add(-1).day();
    	Date.today().isAfter(yesterday); // true
    	Date.today().isBefore(yesterday); // false
    
    	// No date to compare to...	
    	Date.today().isAfter(); // false
    	Date.today().isBefore(); // true
    
    6.  Added .isAfter and .isBefore to online wiki documentation. See 
    	http://code.google.com/p/datejs/wiki/APIDocumentation#isAfter
    	http://code.google.com/p/datejs/wiki/APIDocumentation#isBefore
    
    7.  Added feature to the Date.prototype.equals function that will use new Date() ("now") if no date is provided to 
    	compare to. The functionality remains unchanged if a "date" parameter is provided.
    	
    	Example
    	
    	// Old
    	Date.today().equals(); // error
    	Date.today().equals(Date.today().add(1).day()); // false
    
    	// New
    	Date.today().equals(); // false
    	new Date().equals(); // true (should be true, unless it takes more than one millisecond to compare)
    	Date.today().equals(Date.today().add(1).day()); // false
    	
    8.  All individual CultureInfo files and all compiled files within the /build/ folder now have full 
    	lowercase file names.
    
    	Example
    	
    	// Old
    	date-en-US.js
    
    	// New
    	date-en-us.js
    
    9.  Added new "Release Notes" RSS feed. http://feeds.feedburner.com/DatejsReleaseNotes
    	
    --------------------
    geoff@coolite.com committed Apr 26, 2008
Commits on Apr 19, 2008
  1. --------------------

    2008-04-13 [geoffrey.mcgill]
    Revision #169
    
    1.  Made correction to APIDocumentation.wiki. getDayNumberFromName and getMonthNumberFromName.
    
    --------------------
    geoff@coolite.com committed Apr 19, 2008
Commits on Apr 14, 2008
  1. /build/ folder update

    geoff@coolite.com committed Apr 14, 2008
Commits on Apr 13, 2008
  1. --------------------

    2008-04-13 [geoffrey.mcgill]
    Revision #162
    
    1.  Fixed bug in sugarpak.js where .toISOString was not correctly checking the Date.prototype
        if an instance of .toISOString was already in the dom.
    
    2.  Moved .toISOString() from sugarpak.js to core.js. Function remains otherwise unchanged.
    
    3.  Renamed .getDayOfYear() function to the proper name of .getOrdinalNumber().
    
    	Example
    	
    	// Old
    	Date.today().getDayOfYear(); // 103
    	
    	// New
    	Date.today().getOrdinalNumber(); // 103
    	
    4.  Fixed bug in core.js where .getOrdinalNumber() was not including the current day in the calculation.
    	For example 1-Jan-2008 would return '0', although it is the 'first' day of the year. 
    	The .getOrdinalNumber() function now includes the current day in the calculation.
    
    	Example
    	
    	// Old (15-Jan-2008)
    	new Date(2008, 0, 15).getOrdinalNumber(); // 14
    	
    	// New
    	new Date(2008, 0, 15).getOrdinalNumber(); // 15
    
    5.  Added new "S" format specifier as option in .toString(). The "S" format specifier will return 
    	the ordinal suffix ("st, "nd", "rd" or "th") value of the Day.
    	
    	Example
    	
    	// Old
    	Date.today().getOrdinal(); // "th"
    	
    	// New
    	Date.today().toString("S"); // "th"
    	
    	It's also possible to use the ordinal format specifier as part of larger format string.
    	
    	Example
    	
    	Date.today().toString("MMMM dS, yyyy"); // "April 12th, 2008"
    	
    6.  Removed .getOrdinal function from sugarpak.js. Please use .toString("S").
    
    7.  Contemplated adding "z", "zz" and "zzz" as format specifiers, but changed my mind.
    	For future reference here's the code required if adding "z*" support to .toString().
    	
    	// Add to .toString()
        case "z":
            return x.toString("zz").replace("0", "");
        case "zz":
            return z.substring(0, z.length - 2);
        case "zzz":
            return z.substring(0, z.length - 2) + ":" + z.substring(z.length - 2);
            
        // Documentation
        z      The offset time zone from UTC in hours.                                      "–12" through "+13", "-6"
        zz     The offset time zone from UTC in hours with leading zero.                    "–12" through "+13", "-06"
        zzz    The offset time zone from UTC in hours and minutes.                          "–12:00" through "+13:00", "-06:00"    
    
    8.  Contemplated add "fff" as format specifier option of .toString() but changed my mind. 
    	For future reference, here's the code required if adding "fff" support to .toString().
    	
    	// Add to .toString()
        case "fff":
            var y = "00" + x.getMilliseconds();
            return y.substring(y.length - 3);	
            
        // Documentation
        fff    The milliseconds between 000-999.                                            "000" to "999"    
    
    9.  Changed return type of .getISOWeek to String from Number. Returns values from "01" to "53".
    
    10. Corrected bug where .getISOWeek() was not returning a string with a leading zero if the week was < 10.
    
    	Example
    	
    	// Old
    	Date.today().getISOWeek(); // "7"
    	
    	// New
    	Date.today().getISOWeek(); // "07"
    
    11. Added support for escaping ("\\") characters in a format specifier string.
    
    	Example
    	
    	new Date().toString("\\da\\te: MMMM dS, yyyy"); // "date: April 12th, 2008"
    	
    12. Removed .toShortDateString() from sugarpak.js. Please use .toString("d").
    
    13. Removed .toLongDateString() from sugarpak.js. Please use .toString("D").
    
    14. Removed .toShortTimeString() from sugarpak.js. Please use .toString("t").
    
    15. Removed .toLongTimeString() from sugarpak.js. Please use .toString("T").
    
    16. Added support in .toString() for the following Standard Date and Time Format Specifiers. 
    	The format pattern for each standard pattern is pulled from the CultureInfo file. 
    	The pattern is culture specific and *may* be different for each CultureInfo class. 
    
        STANDARD DATE AND TIME FORMAT STRINGS
        Format  Description                                                                  Example ("en-US")
        ------  ---------------------------------------------------------------------------  -----------------------
         d      The CultureInfo shortDate Format Pattern                                     "M/d/yyyy"
         D      The CultureInfo longDate Format Pattern                                      "dddd, MMMM dd, yyyy"
         F      The CultureInfo fullDateTime Format Pattern                                  "dddd, MMMM dd, yyyy h:mm:ss tt"
         m      The CultureInfo monthDay Format Pattern                                      "MMMM dd"
         r      The CultureInfo rfc1123 Format Pattern                                       "ddd, dd MMM yyyy HH:mm:ss GMT"
         s      The CultureInfo sortableDateTime Format Pattern                              "yyyy-MM-ddTHH:mm:ss"
         t      The CultureInfo shortTime Format Pattern                                     "h:mm tt"
         T      The CultureInfo longTime Format Pattern                                      "h:mm:ss tt"
         u      The CultureInfo universalSortableDateTime Format Pattern                     "yyyy-MM-dd HH:mm:ssZ"
         y      The CultureInfo yearMonth Format Pattern                                     "MMMM, yyyy"
    
    17. Fixed bug in .getUTCOffset().
    
    18. Updated APIDocuemtation to ensure all core.js functions were documented. 
    
    19. Added parameter information to APIDocumentation (http://code.google.com/p/datejs/wiki/APIDocumentation).
    
    20. Added Date.prototype.format(format). The .format function is similar to the .toString() function,
        but will accept a PHP/Unix style format string. See the following PHP documentation for reference.
        
    	http://www.php.net/strftime
    	http://www.php.net/manual/en/function.date.php
    
    	Example
    	
    	Date.today().format("%m/%d/%y"); // "04/13/08"
    	Date.today().format("c");        // "2008-04-13T06:00:00Z"
    	
        If .format is already in the dom when the Datejs libary loads, the .format function will not be created. 
        A secondary .$format function is always created and available.
    
    21. Added .normalizeFormat() to extras.js. The .normalizeFormat function will converts a PHP format 
    	string to Java/.NET format string. 
    	A PHP format string can be used with .$format or .format.
    	A Java/.NET format string can be used with .toString().
        The .parseExact function will only accept a Java/.NET format string	
    
    	Example
    	
    	Date.normalizeFormat("%m/%d/%y"); // "MM/dd/yy"
    	
    	var f1 = "%m/%d/%y"
    	var f2 = Date.normalizeFormat(f1); // "MM/dd/yy"
    
    	new Date().format(f1);    // "04/13/08"
    	new Date().$format(f1);   // "04/13/08"
    	new Date().toString(f2);  // "04/13/08"
    
    	var date = Date.parseExact("04/13/08", f2); // Sun Apr 13 2008
    	
    22. Added .strftime() to extras.js. The .strftime() function will format a local Unix timestamp according 
    	to locale settings.
    	
    	Example
    	
    	Date.strftime("%m/%d/%y", new Date());       // "04/13/08"
    	Date.strftime("c", "2008-04-13T17:52:03Z");  // "04/13/08"
    
    23. Added .strtotime() to extras.js. The .strotime() function will parse any textual datetime description 
    	into a Unix timestamp. 
    	A Unix timestamp is the number of seconds that have elapsed since January 1, 1970 (midnight UTC/GMT).
    	
    	Example
    	
    	Date.strtotime("04/13/08");              // 1208044800
    	Date.strtotime("1970-01-01T00:00:00Z");  // 0	
    
    --------------------
    geoff@coolite.com committed Apr 13, 2008
  2. No commit message

    geoff@coolite.com committed Apr 13, 2008
Commits on Apr 12, 2008
  1. No commit message

    geoff@coolite.com committed Apr 12, 2008
Commits on Apr 11, 2008
  1. No commit message

    geoff@coolite.com committed Apr 11, 2008
Something went wrong with that request. Please try again.