Я загружаю данные excel в mysql. там дата сохранить как формат 16.5.59 (дд.мм.гг). Я пытаюсь изменить это с помощью этого кода
$date = '16.5.59';
echo date('d-m-y',strtotime($date));
Он всегда показывает текущее время, например, 04-02-15. Пожалуйста, измените это на формат дд-мм-гггг.
Заранее спасибо.
5 ответов
$date = '16.5.59';
$date_array = explode(".",$date);
$var_day = $date_array[0];
$var_month = $date_array[1];
> Blockquote
$var_year = $date_array[2];
echo $new_date_format = "$var_day-$var_month-$var_year";
Вы можете сделать это для более простых задач. Это займет время.
$date = '16.5.59';
$dtSplit=explode(".",$date);
echo "<br>".$dtSplit[0].".".$dtSplit[1].".".$dtSplit[2];
echo "<br>".$dtSplit[0].".".$dtSplit[2].".".$dtSplit[1];
echo "<br>".$dtSplit[1].".".$dtSplit[0].".".$dtSplit[2];
echo "<br>".$dtSplit[1].".".$dtSplit[2].".".$dtSplit[0];
echo "<br>".$dtSplit[2].".".$dtSplit[0].".".$dtSplit[1];
echo "<br>".$dtSplit[2].".".$dtSplit[1].".".$dtSplit[0];
Это ни в коем случае не лучшее решение, но возможно использование php date_parse_from_format
. Вы можете указать формат и использовать следующие
$date = "16.5.59";
$dateObj = date_parse_from_format("j.n.yy", $date)
С $dateObj
вы можете работать с тем, что вам нужно, например:
echo $dateObj['year'];
Стоит отметить, что вам требуется PHP >=v5.3
Попробуйте назначить дату самостоятельно, используя explode
и strtotime
:
date_default_timezone_set('America/Los_Angeles');
$date = '16.5.59';
$date_time = strtotime(implode('-', array_reverse(explode('.', $date))))
$date_str = date('d-m-Y', $date_time);
echo $date_str;
Вывод: 16-5-2059
Вы ОБЯЗАТЕЛЬНО должны указать, что год равен 1959
вместо 2059
(или вы уверены, что это действительно 2059 год?)
Вы можете сделать изменение с 2059
на 1959
следующим образом:
date_default_timezone_set('America/Los_Angeles');
$date = '16.5.59';
$date_arr = array_reverse(explode('.', $date))
# This line does the job. Make sure all years are between 1900 - 1999.
$date_arr[0] = '19' . $date_arr[0];
$date_time = strtotime(implode('-', $date_arr))
$date_str = date('d-m-Y', $date_time);
echo $date_str;
Надеюсь, этот ответ вам поможет.
Временная метка была ограничена с 01.01.1970 до 19.01.2038 в некоторых системах (например, Windows).
Если он не покрывает указанный диапазон, тогда он будет принимать текущую дату.
Похожие вопросы
Новые вопросы
php
PHP — это открытый, мультипарадигмальный, динамически типизированный и интерпретируемый язык сценариев, изначально разработанный для веб-разработки на стороне сервера. Используйте этот тег для вопросов о программировании на языке PHP.