Bug 24980: Only add timezone if passed a date-time

This patch prevents a timezone from being assigned to the js moment if
the input string is only at the full-date and not date-time resolution

To test:
1. Do not apply this patch
2. Set your system time zone to CET
3. Apply previous patch (It's just for test)
4. In your browser go to koha main page, open a console and type $date('2020-03-25', {tz:
   'UTC'})
CHECK => you sould get '03/24/2020' (notice day is 24 instead of 25)
5. Apply this patch and reload the browser
6. repeat step 4
SUCCESS => now you get '03/25/2020' (day is correct)
7. Sing off

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Agustin Moyano <agustinmoyano@theke.io>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
This commit is contained in:
Martin Renvoize 2020-03-25 20:41:45 +00:00
parent 5b2c79f1ea
commit 03ea4bd0cc
Signed by: martin.renvoize
GPG key ID: 422B469130441A0F
2 changed files with 9 additions and 3 deletions

View file

@ -34,7 +34,7 @@
window.$date = function(value, options) {
var tz = (options&&options.tz)||def_tz;
var m = moment(value);
if(tz) m.tz(tz);
if((m.creationData().format !== 'YYYY-MM-DD')&&tz) m.tz(tz);
var dateformat = (options&&options.dateformat)||def_date_format;
var withtime = (options&&options.withtime)||false;

View file

@ -24,10 +24,16 @@
return time_pattern;
};
/*
* A JS equivilent of the KohaDates TT Plugin. Passed an rfc3339 formatted date string,
* or JS Date, the function will return a date string formatted as per the koha instance config.
* Optionally accepts a dateformat parameter to allow override of the configured output format
* as well as a 'withtime' boolean denoting whether to include time or not in the output string.
*/
window.$date = function(value, options) {
var tz = (options&&options.tz)||def_tz;
var m = moment(value);
if(tz) m.tz(tz);
if((m.creationData().format !== 'YYYY-MM-DD')&&tz) m.tz(tz);
var dateformat = (options&&options.dateformat)||def_date_format;
var withtime = (options&&options.withtime)||false;
@ -59,4 +65,4 @@
}
})();
</script>
</script>