|
|
|
| Стояла PHP 4.3.9
При выполнении вот этой строчки
[php]
$asd = date("Y - m - d",strtotime("20081233"));
выдавалось "2009-01-02"
Поставил PHP 5.2.8
На ту же строчку выдается "1970-01-01"
В чем проблема? В PHP или ...?? | |
|
|
|
|
|
|
|
для: fizik
(12.01.2009 в 12:11)
| | Подправили поведение strtotime()
В чем проблема-то? | |
|
|
|
|
|
|
|
для: Trianon
(12.01.2009 в 12:19)
| | Вот и я хочу узнать почему в РНР 4 воводится дата "2009-01-02", а при РНР 5,2,8 "1970-01-01".
Хотя должна быть "2009-01-02"! | |
|
|
|
|
|
|
|
для: fizik
(12.01.2009 в 12:25)
| | и Что значит подправили поведение , в какую сторону....как она теперь работает???? | |
|
|
|
|
|
|
|
для: fizik
(12.01.2009 в 12:27)
| | преобразует существующие даты.
Несуществующие - отвергает. | |
|
|
|
|
|
|
|
для: fizik
(12.01.2009 в 12:25)
| | Да не должна она быть.
Просто в силу того, что строка 20081233 не соответствует действительной дате.
В php 4 Вы пользовались побочным эффектом ошибочного поведения.
Ошибку исправили - эффект исчез. | |
|
|
|
|
|
|
|
для: Trianon
(12.01.2009 в 12:30)
| | То есть это наоборот бага была в рнр 4 версии?
Ясно , теперь я так понимаю надо переписывать код!!!! | |
|
|
|
|
|
|
|
для: fizik
(12.01.2009 в 12:36)
| | Да.
Тот самый код, который вычисляет строку 20081233 . | |
|
|
|
|
|
|
|
для: Trianon
(12.01.2009 в 12:37)
| | Спасибо, буду думать..... | |
|
|
|
|
|
|
|
для: fizik
(12.01.2009 в 12:42)
| | Да у меня тпереь задачка:
поясню откуда бралась дата с таким форматом:
у меня есть каждый день минимальная дата из БД например "20081212" (2008 г. 12 декабря)
потом я к нему прибавлял число от 0 до 30 по порядку в цикле.
Получались вот такие даты "20081213" (2008 г. 13 декабря) , "20081214"(2008 г. 14 декабря) и т.д.
Когда доходило до "20081232", этой функцией он должен был показывать (2009 г. 01 января).
Теперь вот надо подумать....знаю мин дату, как вывести все даты от минимальной до + 30 дней!!!! | |
|
|
|
|
|
|
|
для: fizik
(12.01.2009 в 12:42)
| | подсказка strtotime("+$n day", $bias); | |
|
|
|
|
|
|
|
для: Trianon
(12.01.2009 в 12:53)
| | ок, спасибо....только какие-то даты воводяться не понятные.....авгутс вместо декабря...надо разбираться | |
|
|
|
|
|
|
|
для: fizik
(12.01.2009 в 13:06)
| | Наверно что типа такого
<?
$mindate = mktime(0,0,0,12,12,2008);
for($i=0; $i<30; $i++){
$res = date("Y - m - d",strtotime("+$i day",$mindate));
print $res."<br>";
}
?>
|
| |
|
|
|
|
|
|
|
для: AcidTrash
(12.01.2009 в 13:11)
| | да типа того | |
|
|
|
|
|
|
|
для: fizik
(12.01.2009 в 13:21)
| | я просто рисую график поситителей в магазине....он каждый день двигается (смещается).
показывает по оси Х не больше 30 дней. соответственно от 12 декабря 08 до 12 января 09 | |
|
|
|
|
|
|
|
для: fizik
(12.01.2009 в 13:22)
| | просто мне надо исправить формат даты минимальный, не 20081212, а надо я так понимаю 2008-12-12 и приьавлять по дню... | |
|
|
|
|
|
|
|
для: fizik
(12.01.2009 в 13:24)
| | просто мне надо исправить формат даты минимальный, не 20081212, а надо я так понимаю 2008-12-12
<?php
$preg = preg_replace("#(\d{4})(\d{2})(\d{2})#", "$1-$2-$3",20081212);
print $preg;
?>
|
| |
|
|
|
|
|
|
|
для: AcidTrash
(12.01.2009 в 13:28)
| | Да спасибо......уже накатал....
Огромное тебе спасибо за указание верного пути.......а то сейчас бы думал да думал | |
|
|
|
|
|
|
|
для: AcidTrash
(12.01.2009 в 13:28)
| | Бог мой... зачем?! | |
|
|
|
|
|
|
|
для: Trianon
(12.01.2009 в 13:32)
| | Зачем что? | |
|
|
|
|
|
|
|
для: fizik
(12.01.2009 в 13:38)
| | preg_replace зачем | |
|
|
|
|
 23.1 Кб |
|
|
для: Trianon
(12.01.2009 в 13:32)
| | Вот результат работы | |
|
|
|
|
|
|
|
для: fizik
(12.01.2009 в 13:43)
| | и что? его без preg_replace не достичь было? | |
|
|
|
|
|
|
|
для: Trianon
(12.01.2009 в 13:48)
| | Не все нормально...preg_ мне не понодобился, но идея тоже хорошая... | |
|
|
|
|
|
|
|
для: Trianon
(12.01.2009 в 13:32)
| | А чем preg не нравится, или я что-то не понял?
Можно и без него обойтись
$e=(string)20081212;
$mindate = mktime(0,0,0,$e[4].$e[5],$e[6].$e[7],$e[0].$e[1].$e[2].$e[3]);
|
| |
|
|
|
|
|
|
|
для: AcidTrash
(12.01.2009 в 14:04)
| | да потому что strtotime и так отработает.
$mindate = strtotime("20081212"); | |
|
|
|
|
|
|
|
для: Trianon
(12.01.2009 в 14:27)
| | Н-да, действительно, про неё же говорим , про неё же и забыл, полез в какие то дебри :) | |
|
|
|
|
|
|
|
для: Trianon
(12.01.2009 в 14:27)
| | Так вроде начали с того, что strtotime не отрабатывает некорректные даты, а mktime как раз наоборот - очень даже к ним лоялен. | |
|
|
|
|
|
|
|
для: Loki
(12.01.2009 в 16:16)
| | Предлагаешь подождать, когда mktime поправят? :)) | |
|
|
|
|
|
|
|
для: Trianon
(12.01.2009 в 16:18)
| | А должны?:) Вроде как работа с некорректными датами у него завялена как фича и даже приведена в примерах использования. | |
|
|
|
|
|
|
|
для: Loki
(12.01.2009 в 17:21)
| | Ты ж понимаешь... magic quotes в свое время тоже были заявлены как фича... | |
|
|
|
|
|
|
|
для: Trianon
(12.01.2009 в 17:22)
| | до седьмой версии еще есть время попользоваться mktime:) | |
|
|
|
|
|
|
|
для: Loki
(12.01.2009 в 17:30)
| | если ставить перед собой такую цель - да.
Всё время удивляюсь, можно же сразу писать код, который ни на какие побочные эффекты не опирается... | |
|
|
|
|
|
|
|
для: Trianon
(12.01.2009 в 17:53)
| | можно же сразу писать код, который ни на какие побочные эффекты не опирается...
Можно, но опять же не предугадаешь...
Зависит то, от интерпретатора PHP, что там изменят разработчики, не известно.
Компилируемый язык, больше рулит в этом плане.
Причем сам интерпретатор написан по большому счету на C++. | |
|
|
|
|
|
|
|
для: Trianon
(12.01.2009 в 17:53)
| | Вот наткнулся на тему и вспомнил. Нормально ли strtotime проглотит дату из столбца типа DATETIME из базы? В мануале про такой формат ни слова :) | |
|
|
|
|
|
|
|
для: __Андрей__
(13.01.2009 в 03:22)
| | >Вот наткнулся на тему и вспомнил. Нормально ли strtotime проглотит дату из столбца типа DATETIME из базы?
Нормально
>В мануале про такой формат ни слова :)
Неужели? | |
|
|
|
|
|
|
|
для: Trianon
(13.01.2009 в 10:09)
| | >Неужели?
Именно. Конкретно в таком формате в мануале описано не было.
Спасибо. | |
|
|
|
|
|
|
|
для: __Андрей__
(14.01.2009 в 00:19)
| | последовательность ссылок:
http://ru2.php.net/strtotime
http://www.gnu.org/software/shishi/manual/html_node/Date-input-formats.html
http://www.gnu.org/software/shishi/manual/html_node/Calendar-date-items.html#Calendar-date-items
а там первой же строкой iso 8601. | |
|
|
|