Все очень просто. Нужно исправить везде, где указан "неправильный" порядок данных: день, месяц, год.
define('DATE_FORMAT_SHORT', '%d/%m/%Y'); // this is used for strftime()
define('DATE_FORMAT', 'd/m/Y'); // this is used for date()
Нужно заменить на:
define('DATE_FORMAT_SHORT', '%m/%d/%Y'); // this is used for strftime()
define('DATE_FORMAT', 'm/d/Y'); // this is used for date()
define('JQUERY_DATEPICKER_FORMAT', 'dd/mm/yy'); // see http://docs.jquery.com/UI/Datepicker/formatDate
на:
define('JQUERY_DATEPICKER_FORMAT', 'mm/dd/yy'); // see http://docs.jquery.com/UI/Datepicker/formatDate
Для памяти, можно поменять и в комментарии (понятно, что на работу скрипта это никак не повлияет):
// $date should be in format dd/mm/yyyy
на:
// $date should be in format mm/dd/yyyy
Ну, и:
function tep_date_raw($date, $reverse = false) {
if ($reverse) {
return substr($date, 0, 2) . substr($date, 3, 2) . substr($date, 6, 4);
} else {
return substr($date, 6, 4) . substr($date, 3, 2) . substr($date, 0, 2);
}
на:
function tep_date_raw($date, $reverse = false) {
if ($reverse) {
return substr($date, 3, 2) . substr($date, 0, 2) . substr($date, 6, 4);
} else {
return substr($date, 6, 4) . substr($date, 0, 2) . substr($date, 3, 2);
}
Как я понимаю, это все из-за этого ActiveX (Календарь), с помощью, которого вводится дата. Скрпит англоязычный, и у них принят такой порядок. При руссификации, естественно, Календарь не меняли, но формат поменяли на принятый у нас порядок отображения дат. Отсюда и получилась такая нестыковка.