Здравствуйте, помогите с кодом новичку. Данные: Есть таблица учёта заказов в производстве с несколькими полями. Есть поле "Дата начала производства", где вносится дата вручную; Есть поле "Текущая дата", где прописан код: Код (PHP): $line['Текущая дата'] = date("Y-m-d 00:00:00"); и таким образом там отображается текущая дата; Есть поле "Прошло дней", где нужно прописать код, в результате которого будет отображаться, сколько прошло дней с начала производства до сегодняшнего дня. Я прописал такой код: Код (PHP): $line['Прошло дней'] = $line['Текущая дата'] - $line['Дата начала производства']; В результате в поле "Прошло дней" отображается не количество дней, а количество лет. Например: Дата начала производства: 26.10.2015 // Текущая дата: 21.02.2016 // Прошло дней: 1 Дата начала производства: 14.02.2011 // Текущая дата: 21.02.2016 // Прошло дней: 5 Дата начала производства: 01.02.2016 // Текущая дата: 21.02.2016 // Прошло дней: 0 Помогите прописать правильный код, чтобы считалось - сколько прошло дней со дня начала производства. Если это вообще возможно, то я задам ещё вопрос дополнительный (простите за наглость): Можно ли ещё это количество дней перевести в более сложную форму: Например вместо "Прошло 52 дня" чтобы прописывалось "Прошёл 1 месяц и 2 недели" или вместо "Прошло 54 дня" писалось "Прошёл 1 месяц, 2 недели и 2 дня"? P.S. В этих кодах почти совсем не понимаю. Например, чтобы прописать правильно код для текущей даты, сидел читал форумы с утра до поздней ночи, копируя примеры и подставляя в свой код. Случайно что-то получилось ))) Подсказка от модератора: Любой код или текст конфигурации пишите между тегом [code=php] и [/code]. Используйте отступы в коде для форматирования текста. Это помогает быстрее понять вас, увеличивает шанс на получение ответа. Что выделять? Например: PHP, HTML, CSS, JavaScript, SQL, XML, .htaccess, ini, регулярные выражения, код шаблонизаторов, любая другая разметка, результаты array/object dump и т. д.
Спасибо, я так понимаю, эта функция исключает что-то лишнее? А как это правильно в моём коде прописать?
http://php.ru/manual/datetime.diff.html http://php.ru/manual/class.dateinterval.html#dateinterval.props http://php.ru/manual/dateinterval.format.html#refsect1-date ... parameters Код (PHP): <?php $date1 = new DateTime('2009-01-01'); $date2 = new DateTime('2010-02-07'); $interval = $date2->diff($date1); echo $interval->format('Прошло %y лет, %m месяцев, %d дней, дней всего %a')."<br>"; // для склонений удобно сразу получить цифру echo $interval->y.' прошло лет/год и т. д.'; Результат:
думаю проще текстом код написать, а то мало кто захочет с картинки его перепечатовать Добавлено спустя 27 секунд: картинку первым дело загрузи в интернет, а тут ссылку дай
Вот моя таблица: Вот код, прописанный для поля "Прошло недель": Код (PHP): $line['Прошло недель'] = (strtotime($line['Текущая дата']) - strtotime($line['Дата начала производства'])) / 604800; Вот код, прописанный для поля "Прошло дней": Код (PHP): $line['Прошло дней'] = (strtotime($line['Текущая дата']) - strtotime($line['Дата начала производства'])) / 86400; Подсказка от модератора: Любой код или текст конфигурации пишите между тегом [code=php] и [/code]. Используйте отступы в коде для форматирования текста. Это помогает быстрее понять вас, увеличивает шанс на получение ответа. Что выделять? Например: PHP, HTML, CSS, JavaScript, SQL, XML, .htaccess, ini, регулярные выражения, код шаблонизаторов, любая другая разметка, результаты array/object dump и т. д.
novomaster мой код вроде проще. Вместо текста ('Текущая дата', 'Дата начала производства' и т. д.) нужно вставлять дату.
Так дело в том, что я при добавлении новой записи в таблицу не должен больше прописывать никаких вычислений. Код должен срабатывать один и тот же всегда для всех записей. А вы предлагаете каждый раз прописывать отдельный код для каждой новой записи?
Вы предлагаете вместо "Текущая дата" и "Дата начала производства" вставить дату. Но ведь текущая дата меняется каждый день пвтоматически, а дата начала производства в каждой записи разная. Получается, что для каждой новой записи в таблице нужно прописывать отдельный код?
Нет, я хотел скопировать код и запустить его, но там не все данные, как тебе тогда помочь? Или тратить время и догадываться с картинки что куда вставить?
Объясните, что вы имеете под данными? Какие именно данные Вам нужны? В таблице сейчас только два вычисления: В поле "Текущая дата": Код (PHP): $line['Текущая дата'] = date("Y-m-d 00:00:00"); И в поле "Всего прошло": Код (PHP): $all_days = (strtotime($line['Текущая дата']) - strtotime($line['Дата начала производства'])) / 86400; $weeks = floor($all_days/7); // число недель $days = $all_days % 7; // число дней как остаток $line['Всего прошло'] = "Прошло $weeks нед. и $days дн."; Этот код помог написать один человек с другого форума. Но там не совсем то, что хотелось бы видеть: 1) Сейчас показываются недели и дни, а хотелось бы, чтобы если недель 4 и больше, то чтобы показывалиь и месяцы - "Прошло ... месяцев, ... недель и ... дней" 2) Если получается в результате ровное количество недель, то пишет "... недель и 0 дней". Это как-то выглядит несуразно, хотелось бы, чтобы "0 дней" тогда вообще не показывались. 3) Не склоняются результаты: "2 недель и 3 дней", например, вместо "2 недели и 3 дня" (в связи с этим я сделал сокращения: вместо "недель" написал "нед.", вместо "дней" написал "дн.") По сути, сейчас основная проблема решена, осталось сделать огранку, подредактировать код с учётом этих трёх пунктов. Скрин, как выглядит сейчас таблица, прикладываю. Подсказка от модератора: Любой код или текст конфигурации пишите между тегом [code=php] и [/code]. Используйте отступы в коде для форматирования текста. Это помогает быстрее понять вас, увеличивает шанс на получение ответа. Что выделять? Например: PHP, HTML, CSS, JavaScript, SQL, XML, .htaccess, ini, регулярные выражения, код шаблонизаторов, любая другая разметка, результаты array/object dump и т. д.
Вот я давал тебе код viewtopic.php?f=13&t=56833#p457265 его можно запустить и посмотреть результат, с твоим кодом так нельзя. Так что мне делать?
вот в чем проблема: автор не пишет код, он делегирует это парням с форумов, потом других парней просит его усовершенствовать и так далее. нафига учиться или платить, когда есть форумы? переношу тему на помойку.
artoodetoo, если бы я сам писал коды, я б не обращался за помощью. "Не хочу учиться" - неправда. Всегда с удовольствием учусь тому, что мне нужно. В данном случае - это разовая потребность, и штудировать книги месяцами или годами ради одного кода - извините. "Не хочу платить" - вам заплатить нужно? Но вы же не предлагали даже свои условия и не обозначили свою цену за помощь. И мимо не прошли. Просто высказали своё Фи, что вам не заплатили. При этом не сделав ни одного шага а тому, чтобы захотелось вам это сделать. "Тему на помойку" - я вас понял. Как вам угодно, господин гуру всея форума. Не тратьте время, вам же нужно успеть собрать дань с новичков, которые готовы раскошелиться за пару строчек кода.
а ты дерзкий... и с чего ты взял что решение - всего пара строчек кода? ты же не программист вроде. откуда оценка объема работ?
Я не дерзкий, если нужно заплатить - пишите, сколько и за что. А не разводите пустую демагогию. Раз здесь рынок, так и давайте свои условия. Я обозначил, что мне нужно в результате, а от вас пока ничего конкретного не услышал
ты изначально сам разместился вне раздела фриланса и вне этой помойки. значит ожидалось что нашими стараниями ты самостоятельно добьешься цели. оказалось что ты халявщик который собирает с форумов готовые решения. тебя перенесли в соответствующий раздел. что ты обижаешься? ты сам неверно начал.
Мне не нужна пустая болтовня. Я обратился за помощью, так как сам не умею этого делать, а мне тыкают в лицо тем, что я не заплатил сначала. К чему тогда дальнейший разговор?