From f223896c263ffb2919ae1f7ac77b7630a263bedc Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" Date: Fri, 17 Sep 2021 14:52:08 +0100 Subject: [PATCH] Refine date format tokens for weekday number, and add support for day of year See discussion at https://groups.google.com/g/tiddlywiki/c/tf23ByDXzxM/m/5Wx7PV36AwAJ --- core/modules/utils/utils.js | 8 +++++++- editions/tw5.com/tiddlers/features/DateFormat.tid | 4 +++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/core/modules/utils/utils.js b/core/modules/utils/utils.js index 8b608b2b2..38201c537 100644 --- a/core/modules/utils/utils.js +++ b/core/modules/utils/utils.js @@ -383,12 +383,18 @@ exports.formatDateString = function(date,template) { [/^0WW/, function() { return $tw.utils.pad($tw.utils.getWeek(date)); }], + [/^0dddd/, function() { + return $tw.utils.pad(Math.floor((date - new Date(date.getFullYear(), 0, 0)) / 1000 / 60 / 60 / 24),3); + }], [/^dddd/, function() { - return [7,1,2,3,4,5,6][date.getDay()]; + return Math.floor((date - new Date(date.getFullYear(), 0, 0)) / 1000 / 60 / 60 / 24); }], [/^ddd/, function() { return $tw.language.getString("Date/Short/Day/" + date.getDay()); }], + [/^dd/, function() { + return [7,1,2,3,4,5,6][date.getDay()]; + }], [/^mmm/, function() { return $tw.language.getString("Date/Short/Month/" + (date.getMonth() + 1)); }], diff --git a/editions/tw5.com/tiddlers/features/DateFormat.tid b/editions/tw5.com/tiddlers/features/DateFormat.tid index 692ec5b62..d58a9846f 100644 --- a/editions/tw5.com/tiddlers/features/DateFormat.tid +++ b/editions/tw5.com/tiddlers/features/DateFormat.tid @@ -7,9 +7,11 @@ type: text/vnd.tiddlywiki When used to display date values (with the `format` attribute set to ''date''), the ViewWidget accepts a `template` attribute that allows the format of the date values to be specified. The format string is processed with the following substitutions: |!Token |!Substituted Value | +|`dddd` |Day of year (1 to 365, or 366 for leap years) | +|`0dddd` |Zero padded day of year (001 to 365, or 366 for leap years) |`DDD` |Day of week in full (eg, "Monday") | |`ddd` |Short day of week (eg, "Mon") | -|`dddd` |<<.from-version "5.2.0">> Weekday number from 1 through 7, beginning with Monday and ending with Sunday | +|`dd` |<<.from-version "5.2.0">> Weekday number from 1 through 7, beginning with Monday and ending with Sunday | |`DD` |Day of month | |`0DD` |Adds a leading zero | |`DDth` |Adds a suffix |