Browse Source

Fixed #25856 -- Added %B support to Date.strftime.

This enables the admin to display the correct localized month name if %B
is used in the date format.
akoskaaa 9 năm trước cách đây
mục cha
commit
ab2d34ba3f

+ 1 - 0
django/contrib/admin/static/admin/js/calendar.js

@@ -204,4 +204,5 @@ depends on core.js for utility functions like removeChildren or quickElement
         }
     };
     window.Calendar = Calendar;
+    window.CalendarNamespace = CalendarNamespace;
 })();

+ 7 - 0
django/contrib/admin/static/admin/js/core.js

@@ -153,8 +153,15 @@ function findPosY(obj) {
         return this.getTwoDigitHour() + ':' + this.getTwoDigitMinute() + ':' + this.getTwoDigitSecond();
     };
 
+    Date.prototype.getFullMonthName = function() {
+        return typeof window.CalendarNamespace === "undefined"
+            ? this.getTwoDigitMonth()
+            : window.CalendarNamespace.monthsOfYear[this.getMonth()];
+    };
+
     Date.prototype.strftime = function(format) {
         var fields = {
+            B: this.getFullMonthName(),
             c: this.toString(),
             d: this.getTwoDigitDate(),
             H: this.getTwoDigitHour(),

+ 1 - 0
js_tests/admin/core.test.js

@@ -54,6 +54,7 @@ test('Date.getHourMinuteSecond', function(assert) {
 test('Date.strftime', function(assert) {
     var date = new Date(2014, 6, 1, 11, 0, 5);
     assert.equal(date.strftime('%Y-%m-%d %H:%M:%S'), '2014-07-01 11:00:05');
+    assert.equal(date.strftime('%B %d, %Y'), 'July 01, 2014');
 });
 
 test('String.strptime', function(assert) {