26
:(
I have finally understood the problem.
Modules use strtotime() to convert the string 01/06/2000 to a unix timestamp.
Please read:
http://php.net/manual/en/function.strtotime.php
Quote:
Dates in the m/d/y or d-m-y formats are disambiguated by looking at the separator between the various components: if the separator is a slash (/), then the American m/d/y is assumed; whereas if the separator is a dash (-) or a dot (.), then the European d-m-y format is assumed.
To avoid potential ambiguity, it's best to use ISO 8601 (YYYY-MM-DD) dates or DateTime::createFromFormat() when possible.
The problem is that php does not know if 01 is the day or the month! It assumes that if the string uses '/' the 01 is the month. If you use '-' then it will assume that the 01 is the day.
Quote:
The best way to compensate for this is by modifying your joining characters. Forward slash (/) signifies American M/D/Y formatting, a dash (-) signifies European D-M-Y and a period (.) signifies ISO Y.M.D.
I cannot say it is a core or a module bug, it is just the way php works.
You can fix your problem by editing language/yourlanguage/global.php and change
define('_SHORTDATESTRING', 'd/m/Y');
into
define('_SHORTDATESTRING', 'd-m-Y');