Как автоматически отображать в отдельном поле таблицы текущую дату?
#1
Отправлено 21 Февраль 2016 - 21:21
Там есть поля "Дата начала производства" и "Предполагаемая дата окончания производства".
Добавляю поле "Прошло дней...", хочу, чтобы там отображалось, сколько прошло дней с даты начала производства.
Для этого, я так думаю, мне нужно создать отдельное поле "Текущая дата", а потом вычисление для поля №Прошло дней" в таком виде:
$line['Прошло дней'] = $line['Текущая дата'] - $line['Дата начала производства'];
Вопрос: а как сделать, чтобы в поле "Текущая дата" отображалась именно текущая дата, изменяясь каждый день автоматически?
По форуму искал, но нашёл более сложные вопросы и ответы, пытался оттуда вычленить коды для текущей даты, но ничего не происходит, кроме "Ошибка в вычислении"
#2
Отправлено 21 Февраль 2016 - 21:30
$line['Текущая дата'] = {текущая дата}
Не работает, пишет ошибку:
Ошибка в вычислении.
Производство.Текущая дата :
1: $line['f5521'] = {текущая дата}
syntax error, unexpected '{'
#3
Отправлено 21 Февраль 2016 - 21:31
#4
Отправлено 21 Февраль 2016 - 23:46
$line['Текущая дата'] = date("Y-m-d 00:00:00");
А вот вычисление, сколько прошло дней не получается:
$line['Прошло дней'] = $line['Текущая дата'] - $line['Дата начала производства']
Выдаёт ошибку:
Ошибка в вычислении.
Производство.Текущая дата
Производство.Прошло дней :
1: $line['f5531'] = $line['f5521'] - $line['f5461']
syntax error, unexpected end of file
Сообщение отредактировал novomaster: 21 Февраль 2016 - 23:52
#5
Отправлено 21 Февраль 2016 - 23:51
#6
Отправлено 21 Февраль 2016 - 23:58
Однако, само вычисление работает неправильно.
Вот код:
$line['Прошло дней'] = $line['Текущая дата'] - $line['Дата начала производства'];
А вот, что высчиталось:
C:\Users\Андрей\YandexDisk\Скриншоты\Прошло%20дней.png
Сообщение отредактировал novomaster: 21 Февраль 2016 - 23:59
#7
Отправлено 22 Февраль 2016 - 00:02
У меня в поле "Прошло дней" считается не сколько дней прошло, а сколько ЛЕТ ))))
Блин, как же это изменить на дни???
#9
Отправлено 22 Февраль 2016 - 10:01
Ну то есть:
- вместо "Прошло 119 дней" должно отображаться "Прошло 3 месяца, 3 недели и 6 дней"?
Или хотя бы в недели + дни
#10
Отправлено 22 Февраль 2016 - 13:54
#11
Отправлено 22 Февраль 2016 - 14:10
CbCoder (22 Февраль 2016 - 13:54) писал:
"Прошло 8,14 недель"
"Прошло 0,57 недель"
и так далее.
То есть отображаются либо дни, либо недели.
Для отображения дней вот такой у меня код:
$line['Прошло дней'] = (strtotime($line['Текущая дата']) - strtotime($line['Дата начала производства'])) / 86400;А для отображения недель вот такой:
$line['Прошло недель'] = (strtotime($line['Текущая дата']) - strtotime($line['Дата начала производства'])) / 604800;В итоге у меня сейчас 2 колонки, в одной из которых указываются недели, а во второй - дни (скрин прикладываю).
Мне нужна одна колонка, в которой будет указываться "Прошло ... месяцев, ... недель и ... дней"
или хотя бы "Прошло ... недель и ... дней"
#12
Отправлено 22 Февраль 2016 - 15:01
#13
Отправлено 22 Февраль 2016 - 15:29
CbCoder (22 Февраль 2016 - 15:01) писал:
Видимо, я дурак.
Ну вот установил я округление, например, получилось вместо "Прошло 8,14 недель" показывать будет "8 недель".
Результат-то не тот, который нужен. Нужно, чтобы показывало "Прошло 8 недель и 1 день". Округление этого не даёт.
Я понимаю, что для Вас это звучит смешно и глупо, а для меня - дилемма. Чтобы её мне решить, я так понимаю, надо засесть за изучение языка программирования. Но это, так сказать, единичный случай, когда мне понадобилось прописать код, и ради этого сидеть и штудировать книги, думаю, нецелесообразно. Поэтому и обращаюсь за помощью к специалистам на форуме.
#14
Отправлено 22 Февраль 2016 - 15:45
Алгоритм я вам уже подсказал - 1) делите, округляете, получаете число недель, 2) берете остаток от деления - получаете число оставшихся дней, 3) соединяете все в одну строку
Подсказки: http://php.net/manua....arithmetic.php , http://php.net/manua...tors.string.php
#15
Отправлено 22 Февраль 2016 - 16:26
CbCoder (22 Февраль 2016 - 15:45) писал:
Алгоритм я вам уже подсказал - 1) делите, округляете, получаете число недель, 2) берете остаток от деления - получаете число оставшихся дней, 3) соединяете все в одну строку
Подсказки: http://php.net/manua....arithmetic.php , http://php.net/manua...tors.string.php
Спасибо, значит придётся изучать.
Просто, прежде чем спрашивать здесь, я попытался что-то сделать сам, нашёл похожие формулы, переписал их под себя, то есть постарался сделать всё своими силами. Но конечный результат оказался не совсем тем, что я хотел, а решения самостоятельно уже не нашел. поэтому и выложил здесь свои получившиеся коды, чтобы знающие люди сразу увидели, где я ошибся и подсказали, что поменять/добавить в кодах. Я же не прошу с нуля писать за меня код, а попросил помочь его доработать.
Вы пишете, что можете подсказать по сложному алгоритму. но "сложность" - она у каждого своя. то, что сложно для меня - для Вас "орешки", а что сложно для Вас - для меня вообще космос
Спасибо, что попытались помочь, оставлю как есть - пусть в отдельной колонке указывается количество недель с дробями, а в другой - общее количество дней. Остальное - буду высчитывать в уме или на калькуляторе ))
#16
Отправлено 22 Февраль 2016 - 16:36
$all_days = (strtotime($line['Текущая дата']) - strtotime($line['Дата начала производства'])) / 86400; $weeks = round($all_days/7); // число недель $days = $all_days % 7; // число дней как остаток $line['Всего прошло'] = "Прошло $weeks недель и $days дней";
Мне не трудно один раз написать простой код, просто не хотелось чтобы это превращалось в систему.
#17
Отправлено 22 Февраль 2016 - 17:10
CbCoder (22 Февраль 2016 - 16:36) писал:
$all_days = (strtotime($line['Текущая дата']) - strtotime($line['Дата начала производства'])) / 86400; $weeks = round($all_days/7); // число недель $days = $all_days % 7; // число дней как остаток $line['Всего прошло'] = "Прошло $weeks недель и $days дней";
Мне не трудно один раз написать простой код, просто не хотелось чтобы это превращалось в систему.
Спасибо огромное, Вы мне очень помогли!
Для Вас это просто, а для меня - тёмный лес. Не может же человек во всём разбираться. Ещё раз спасибо, надеюсь, таких как я незнаек очень мало ))
Количество пользователей, читающих эту тему: 1
0 пользователей, 1 гостей, 0 анонимных