известен ее формат - "Y.m.d.[H:i:s]"
Как на основании этих данных преобразовать дату в unixtime.
Есть ли в php какая нибудь универсальная функция для этого? Чтоб при изменении формата и не приходилось ничего менять в функции.
Как-бы обратная date($dateformat, time()); ?
Спустя 24 минуты, 10 секунд (1.04.2011 - 20:14) Trianon написал(а):
Цитата |
Чтоб при изменении формата и не приходилось ничего менять в функции. |
Это как?
Святым духом угадывать, что изменилось?
Спустя 12 минут, 57 секунд (1.04.2011 - 20:27) LRCenter написал(а):
Trianon
В смысле духом? Вся инфа-то есть.
Есть формат:
Есть время:
Можно узнать время в заданом формате.
А как теперь из него обратно получить unixtime?
У нас есть формат ($dateformat) и время в нем ($textdate).
Что еще надо-то?
В смысле духом? Вся инфа-то есть.
Есть формат:
$dateformat="Y.m.d.[H:i:s]";
Есть время:
$nowtime=time();
Можно узнать время в заданом формате.
$textdate=date($dateformat, $nowtime);
echo $textdate;
А как теперь из него обратно получить unixtime?
У нас есть формат ($dateformat) и время в нем ($textdate).
Что еще надо-то?
Спустя 1 минута, 10 секунд (1.04.2011 - 20:28) LRCenter написал(а):
Имеется ввиду что в функцию передаются два параметра формат и время в нем, а возвращается unixtime.
Спустя 24 минуты, 49 секунд (1.04.2011 - 20:53) T1grOK написал(а):
Лучше всего хранить и работать с датой в юникс формате везде. Но раз уж спрашиваешь:
SELECT UNIX_TIMESTAMP(`date`) as `date` FROM table
Спустя 23 минуты, 45 секунд (1.04.2011 - 21:17) LRCenter написал(а):
а нафиг мне sql?
Я про универсальное и чистое решение на php спрашиваю.
Я про универсальное и чистое решение на php спрашиваю.
Спустя 10 минут, 43 секунды (1.04.2011 - 21:27) Trianon написал(а):
можно с помощью preg_replace перейти к формату "YYYY-MM-DD HH:MM:SS" , а последний уже функцией strtotime превращается в юникстайм.
Спустя 1 минута, 38 секунд (1.04.2011 - 21:29) T1grOK написал(а):
Гы-гы! Вот это я ушами прохлопал. . Да Trianon дело говорит
Спустя 13 часов, 22 минуты, 10 секунд (2.04.2011 - 10:51) LRCenter написал(а):
Да, спасибо. Сделал на регулярках, хотя не люблю я их, а что делать)
Спустя 26 минут, 38 секунд (2.04.2011 - 11:18) ApuktaChehov написал(а):
смотрите в сторону strtotime()
Спустя 43 минуты, 7 секунд (2.04.2011 - 12:01) ИНСИ написал(а):
помню где-то linker делал подобное через strtotime() и было очень красиво
Спустя 1 час, 5 минут, 13 секунд (2.04.2011 - 13:06) Snus написал(а):
LRCenter
function getFDate($date,$format){
return date($format, strtotime($date));
};
echo getFDate('02.04.2011','Y-m-d');
Спустя 3 часа, 53 минуты, 10 секунд (2.04.2011 - 16:59) LRCenter написал(а):
Snus
Предложеная функция возвращает дату в заданном формате, а мне надо наоборот зная формат и имея дату-время в нем, получить unixtime. Нетривиальная задача.
Без регулярок, видимо, не обойтись.
Предложеная функция возвращает дату в заданном формате, а мне надо наоборот зная формат и имея дату-время в нем, получить unixtime. Нетривиальная задача.
Без регулярок, видимо, не обойтись.
Спустя 5 минут, 13 секунд (2.04.2011 - 17:04) LRCenter написал(а):
strtotime(), не работает например с такой датой - "02.04.2011.[20:04:43]", а мне нужно УНИВЕРСАЛЬНОЕ решение
Спустя 1 минута, 55 секунд (2.04.2011 - 17:06) Trianon написал(а):
Цитата |
а мне надо наоборот зная формат и имея дату-время в |
Что означают слова "зная формат"?
Спустя 9 минут, 51 секунда (2.04.2011 - 17:16) LRCenter написал(а):
Trianon
Сигнатура по каторой будет разобрана дата, как иначе узнать, что это, день, месяц или год? А может быть день недели?
Это формат - d.m.Y.[H:i:s]
А это пример времени в нем - 02.04.2011.[20:13:01]
как узнать время линукс до секунды(без всяких округлений), на основании этих данных?
Сигнатура по каторой будет разобрана дата, как иначе узнать, что это, день, месяц или год? А может быть день недели?
Это формат - d.m.Y.[H:i:s]
А это пример времени в нем - 02.04.2011.[20:13:01]
как узнать время линукс до секунды(без всяких округлений), на основании этих данных?
Спустя 1 минута, 47 секунд (2.04.2011 - 17:18) LRCenter написал(а):
Перерыл весь инет нет ни одного нормального универсального решения для этой задачи. Как-так?
Спустя 24 минуты, 34 секунды (2.04.2011 - 17:43) Trianon написал(а):
LRCenter
d.m.Y.[H:i:s] - это спецификаторы прямого преобразования (из unixtime в строку человеческого представления)
Обратное преобразование они детерминированно могут и не описать.
Обратную функцию, которая корректно отрабатывала бы любые сочетания строки формата даты и момента времени, написать не получится.
Пример: даты 2 декабря и 21 февраля 2011 года в формате 'jny' будут выглядеть одинаково: 21211
С другой стороны, имярек, которому известен формат и известно значение, обычно обладает и исходным unixtime
Может просто взять прямо его?
d.m.Y.[H:i:s] - это спецификаторы прямого преобразования (из unixtime в строку человеческого представления)
Обратное преобразование они детерминированно могут и не описать.
Обратную функцию, которая корректно отрабатывала бы любые сочетания строки формата даты и момента времени, написать не получится.
Пример: даты 2 декабря и 21 февраля 2011 года в формате 'jny' будут выглядеть одинаково: 21211
С другой стороны, имярек, которому известен формат и известно значение, обычно обладает и исходным unixtime
Может просто взять прямо его?
Спустя 23 минуты, 10 секунд (2.04.2011 - 18:06) LRCenter написал(а):
не мой случай. Ладно, ниче поизвращался и сделал, правда не универсально, зато без регулярок.
Спасибо за участие.
Спасибо за участие.
Спустя 19 часов, 36 минут, 31 секунда (3.04.2011 - 13:42) Snus написал(а):
Цитата (LRCenter @ 2.04.2011 - 14:04) |
strtotime(), не работает например с такой датой - "02.04.2011.[20:04:43]", а мне нужно УНИВЕРСАЛЬНОЕ решение |
Это не формат даты, а жидкий экскремент бешенного орангутанга. Изначально нужно заносить данные, которые может понять не только автор, но и машина и другие пользователи системы.
Спустя 5 часов, 27 минут, 53 секунды (3.04.2011 - 19:10) LRCenter написал(а):
Snus
Спасибо, за совет. Приму к сведению.
Спасибо, за совет. Приму к сведению.
_____________
Меньше кода - меньше багов ©