Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Осталось дней, дня, день
|
|||
|---|---|---|---|
|
#18+
Здравствуйте! Столкнулся с совершенно простой на первый взгляд проблемой. Есть даты, скрипт вычисляет сколько дней осталось до них. Нужно выводить 21 день 3647 дней 23 дня и т.д. Так вот - как научить скрипт распознавать дней/дня/день? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2008, 17:09 |
|
||
|
Осталось дней, дня, день
|
|||
|---|---|---|---|
|
#18+
если предпоследня цифра 1, то "дней" иначе если последняя цифра 0 или >=5, то "дней" иначе если последняя цифра 2,3 или 4, то "дня" иначе "день". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2008, 17:40 |
|
||
|
Осталось дней, дня, день
|
|||
|---|---|---|---|
|
#18+
ну сам алгоритм понятен :) как отследить последнюю цифру? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2008, 17:43 |
|
||
|
Осталось дней, дня, день
|
|||
|---|---|---|---|
|
#18+
twistfireкак отследить последнюю цифру?смотря в каком виде у вас это число. либо остаток от деления на 10, либо последний символ строки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2008, 17:46 |
|
||
|
Осталось дней, дня, день
|
|||
|---|---|---|---|
|
#18+
РЕБЯТА, все правильно, только есть исключение: числа от 11 до 20 будут заканчиваться дней, так что отслеживать надо 2 последние цифры ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2008, 11:36 |
|
||
|
Осталось дней, дня, день
|
|||
|---|---|---|---|
|
#18+
akopiumРЕБЯТА, все правильно, только есть исключение: числа от 11 до 20 будут заканчиваться дней, так что отслеживать надо 2 последние цифрыЕсли вы внимательно прочитаете мой первый пост в этой теме, то там это уже есть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2008, 11:39 |
|
||
|
Осталось дней, дня, день
|
|||
|---|---|---|---|
|
#18+
miksoft 12 дней 13 дней и 22 дня 23 дня ну и....? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2008, 17:54 |
|
||
|
Осталось дней, дня, день
|
|||
|---|---|---|---|
|
#18+
akopium miksoft 12 дней 13 дней и 22 дня 23 дня ну и....?это я вас должен спросить "ну и?" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2008, 18:05 |
|
||
|
Осталось дней, дня, день
|
|||
|---|---|---|---|
|
#18+
// Образка первой цифры $len = strlen($head); $leng = $len - (2 * $len - 1); $str = substr($head, 0, $leng); //Образка остальных цифр $n_str = substr($head, 1); echo "<b><span class='style1'>".$str."</span><span class='style2'>".$n_str."</span>"; И проверяй на что конечается) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2008, 20:02 |
|
||
|
Осталось дней, дня, день
|
|||
|---|---|---|---|
|
#18+
Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2008, 21:22 |
|
||
|
Осталось дней, дня, день
|
|||
|---|---|---|---|
|
#18+
shifteee// Образка первой цифры $len = strlen($head); $leng = $len - (2 * $len - 1); $str = substr($head, 0, $leng); //Образка остальных цифр $n_str = substr($head, 1); echo "<b><span class='style1'>".$str."</span><span class='style2'>".$n_str."</span>"; И проверяй на что конечается) Я так понимаю это работает только со строками? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2008, 23:08 |
|
||
|
Осталось дней, дня, день
|
|||
|---|---|---|---|
|
#18+
последнюю цифру выделить проще: $str = substr($head,$len-1,1); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2008, 23:15 |
|
||
|
Осталось дней, дня, день
|
|||
|---|---|---|---|
|
#18+
twistfire shifteee// Образка первой цифры $len = strlen($head); $leng = $len - (2 * $len - 1); $str = substr($head, 0, $leng); //Образка остальных цифр $n_str = substr($head, 1); echo "<b><span class='style1'>".$str."</span><span class='style2'>".$n_str."</span>"; И проверяй на что конечается) Я так понимаю это работает только со строками? Просто взял кусок из своего кода для строковой переменно без модернизаций :) Но методика в принципе одна. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2008, 00:05 |
|
||
|
Осталось дней, дня, день
|
|||
|---|---|---|---|
|
#18+
Как вариант для числовых значение можно использовать следующее: Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2008, 03:21 |
|
||
|
Осталось дней, дня, день
|
|||
|---|---|---|---|
|
#18+
Можно даже обойтись без floor: Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2008, 03:27 |
|
||
|
Осталось дней, дня, день
|
|||
|---|---|---|---|
|
#18+
Код: php 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2012, 13:13 |
|
||
|
Осталось дней, дня, день
|
|||
|---|---|---|---|
|
#18+
мой вариант function BalanceDay($d) { if($d == 1) return "день"; if($d >=5 && $d <= 20) return "дней"; $x = $d % 10; if($x == 1) return "день"; if($x == 2 || $x == 3 || $x == 4) return "дня"; return "дней"; } ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2013, 23:07 |
|
||
|
Осталось дней, дня, день
|
|||
|---|---|---|---|
|
#18+
Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2013, 23:28 |
|
||
|
Осталось дней, дня, день
|
|||
|---|---|---|---|
|
#18+
ScareCrow Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. осталось в одну строку записать :)) переработаный ... двоичный: Код: php 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.02.2013, 09:25 |
|
||
|
Осталось дней, дня, день
|
|||
|---|---|---|---|
|
#18+
hotfix. Сорри. поспешил, с десятками ошибся Код: php 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.02.2013, 09:32 |
|
||
|
Осталось дней, дня, день
|
|||
|---|---|---|---|
|
#18+
В этом варианте ошибка!!! function days($d) { $y = $d % 10; $x = $d / 10 % 10; if ($x && $x == 1) return "дней"; if ($y == 1) return "день"; if (in_array($y,"2,3,4")) return "дня"; return "дней"; } Посмотрите внимательно документацию по функции in_array. У меня все заработало вот с такой правкой: if (in_array($y, array("2,3,4"))) return "дня"; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2014, 22:21 |
|
||
|
|

start [/forum/topic.php?desktop=1&fid=23&tid=1462999]: |
0ms |
get settings: |
10ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
90ms |
get topic data: |
16ms |
get forum data: |
4ms |
get page messages: |
72ms |
get tp. blocked users: |
2ms |
| others: | 251ms |
| total: | 473ms |

| 0 / 0 |
