strptime и tm_year<1900

smike

Новичок
strptime и tm_year<1900

Существует ли в PHP аналог функции strptime который позволяет обрабатывать даты до 1900 года?
 

kernel32

Новичок
smike
тебе нужно почитать про формат JDC
посмотри [m]gregoriantojd[/m] и другие функции в том же разделе
 

smike

Новичок
kernel32
Похоже ты меня неправильно понял, мне не нужно переводить дату из Грегорианского в Юлианский календарь. Мне нужно чтобы
PHP:
$date=strptime ('1899','%Y');
echo $date['tm_year'];
выдавало -1
 

kernel32

Новичок
smike
насколько я знаю, такого аналога нет. нужно работать с JDC, либо искать уже готовое решение
 

Фанат

oncle terrible
Команда форума
объясните мне, кто понял.
товарищ ищет функцию, производящую таймстамп 19 века? или что?
 

smike

Новичок
Объясняю:
Задача перевести дату введенную пользователем в формат поля mysql date т.е. YYYY-MM-DD.
Пользователь вводит дату в формате %x (предпочтительный формат даты без времени в текущей локали).
 

Фанат

oncle terrible
Команда форума
и все сразу догадались, что ты имеешь в виду под словом %х
может быть, следует быть более информативным, если хочешь получить ответ на свой вопрос?
и объясни ради бога, при чем здесь функция strptime.
 

smike

Новичок
и все сразу догадались, что ты имеешь в виду под словом %х
%x - предпочтительный формат даты без времени в текущей локали
strftime

и объясни ради бога, при чем здесь функция strptime.
array strptime ( string $date , string $format )
strptime() returns an array with the date parsed, or FALSE on error.

format (string)
The format used in date (e.g. the same as used in strftime()).
For more information about the format options, read the strftime() page.
 

Фанат

oncle terrible
Команда форума
Круто. предпочтительный формат даты без времени в текущей локали - это, безусловно, гораздо информативнее, чем %х.

-~{}~ 09.01.08 13:01:

Пользователь вводит дату в формате %x
пользователь, видимо, так и пишет, в инпут формы - "предпочтительный формат"

-~{}~ 09.01.08 13:09:

Существует ли в PHP аналог функции strptime который позволяет обрабатывать даты до 1900 года?
Вопрос без тени сарказма или любой другой агрессии с моей стороны. мне только любопытно: а в списке функций PHP для работы с датой посмотреть нельзя?

-~{}~ 09.01.08 13:26:

ладно. ответ на вопрос нужен тебе, но что выводит strftime("%x"); мне пришлось смотреть самостоятельно. фиг с ним, поскольку у меня опять от любопытства аж скулы сводит.
в моей локали оно выводит 01/09/08
Скажи, без функций и без пхп, а просто ты сам, глядя на эту дату - можешь сказать, какой это год - 1808, 1908 или 2008?
 

smike

Новичок
Вопрос без тени сарказма или любой другой агрессии с моей стороны. мне только любопытно: а в списке функций PHP для работы с датой посмотреть нельзя?
Можно, и я перед тем как сюда постить конечно-же это сделал. Думал может кто знает библиотеку типа calendar в которой есть такая функция.

пользователь, видимо, так и пишет, в инпут формы - "предпочтительный формат"
Да нет пользователь при регистрации выбирает язык, и в зависимости от выбранного языка подключается нужная локаль со своим предпочтительным форматом даты.

Скажи, без функций и без пхп, а просто ты сам, глядя на эту дату - можешь сказать, какой это год - 1808, 1908 или 2008?
В том то все и дело что я не могу, а функция strptime может, но только для дат до 1900 года ;)

Сорри тут протупил, действительно при таком раскладе год определить невозможно.
Свою ошибку понял, вопрос снят.

Хотя тогда мне не понятно как strptime различает 2005 и 1905.
 

Фанат

oncle terrible
Команда форума
пользователь при регистрации выбирает язык, и в зависимости от выбранного языка подключается нужная локаль со своим предпочтительным форматом даты.
круто
а пользователь-то знает, в каком формате ему предпочтительно вводить дату?
 

smike

Новичок
круто
а пользователь-то знает, в каком формате ему предпочтительно вводить дату?
Знает. В поле по умолчанию будет текущая дата в нужном формате.
Кроме того рядом с названием поля можно указать формат в котором нужно вводить дату.
 

Фанат

oncle terrible
Команда форума
как strptime различает 2005 и 1905, мне тоже непонятно.
думаю, берет ближайший к текущей дате.
в любом случае, если у тебя такой разброс, то сделал бы ты единый формат, чтобы без разночтений...
 

smike

Новичок
в любом случае, если у тебя такой разброс, то сделал бы ты единый формат, чтобы без разночтений...
Согласен, скорее-всего так и сделаю. Просто хотел сделать ввод даты максимально удобным для пользователя. И вроде как нашел простое решение, но уперся в 1900 год :).
 
Сверху