для таких вещей есть оператор switch - это раз. По вашему коду будет 21 лет, 22 лет, и т.д. зы. Лучше хранить все в днях, имхо.
Читал Если рассудить логически: кол-во полных месяцев правильно - 5 (октябрь,ноябрь, декабрь, анварь, февраль) В сентябре 30 дней, получается 30 - 14 = 16 В марте нас не волнует сколько дней и также не волнует сколько в феврале Или я не прав? Далее, 16+3 получается 19 Если не правильно рассудил - исправляйте.
У меня работает, только я ж не всё писала, я пропустила подключение к базе например. В чем ошибка появляется у вас? "старушенции" с такими великовозрастными детьми на моём форуме не обитают :? , это будут линеечки для показа возраста деток (ну и потом ещё добавятся беременные и свадебные). Со switch согласна. по поводу несходимости дней - я примерно по этому и не хотела добавлять в лнеечку кол-во дней. Потому как ошибки могут быть и в вычислениях скриптом и с часовым поясом не знаю как разбираться. Да и вообще при возрасте в 8 лет кол-во дней как-то особой роли и не играет. Я планировала скрипт писать с учётом, что если года и месяцы равны 0, то выводить в неделях и днях - это для деток до 1 месяца. Если у кого-то есть ещё варианты скриптов, то интересно посмотреть, а то для недельного ребёнка ошибка в 2 дня играет большую роль.
кол-во полных месяцев правильно - 5 (ноябрь, декабрь, анварь, февраль) - что-то не поняла... пишешь 5, а в примере приводишь 4
Кто-то знает, вокруг пиксельно шрифта черного цвета можно сдеть обводку белым? Я так подумала, есть же не мало форумов с тёмным фоном, как тогда быть?
Ключи массива без кавычек написаны, "год/года/лет" неправильно работает (про деток не знал)... Фигня, в общем, notice'ы ) А еще насчет 1970го года парились Но вообще, ИМХО, лучше сразу писать что-то универсальное. Чтоб и с 70м годом, и с днями... А то добавятся потом свадебные линеечки... А в этом аду на счету каждый день :twisted: :roll: :wink: Код, который Dagdamor написал, проверяли? Подошел?
Поэтому и спрашивала, что сразу и на будущее думаю как делать. Впринципе. свадебные тоже не будут измеряться годами до 1970... наверное не больше года будет и тут наверное дни важны. Я вот теперь уже и задумываться начинаю, а так нужно ли мне вообще меньше 70 года? Разве что ради универсальности. Код буду сейчас проверять, потом напишу что получилось
Странно скрипт работает... или я что-то недопонимаю.... Задаю 2 даты: 28.09.2005 и 28.10.2005 В первом случае получаю результат: 1 год 4 месяца 14 дней во-втором: 3 года 3 месяца 15 дней Что за разница в 1 день? Я так думаю, что это из-за разницы в днях месяца 30-31, но на выходе вроде не должно так быть. (причём уж не знаю откуда это взялось, может у меня что-то с глазами было, но когда я запустила первый раз, то у меня результат выдал для первого случая 1 год 5 месяцев 15 дней.... Я в скрипте нечего не меняла, поставила вторую дату, потом вернулась к первой и она уже показала такой результат.)
Предыдущий вопрос про дату не отменяется, но есть ещё. Дошла я до наложения бегунка... Вобщем, если я правильно поняла и делаю, то у меня пока так: Бегунок по высоте может быть выше фона, а по длине уж точно короче. Поэтому я создаю третюю картинку $image = imagecreatetruecolor($size_new_h, $size_new_w); с размерами по высоте равными бегунку (если он выше фона), а по длине равными фону. Почему у меня она имеет чёрный цвет заливки? И второй вопрос, как считать смещение бегунка? Лучше по его краю или серединке? Если второй вариант, то вначале года бегунок будет наполовину скрыт, но по-моему так он лучше показывает на какой цифре он сейчас. И, как я поняла, мне надо длину фона поделить на кол-во дней году, а смещать на кол-во дней пройденных до текущего момента умноженных на результат деления?
А каким вы его заливаете? а не проще в процентах исчислять? лучше взять за длину шкалы = (длина фона - ширина бегунка) - т.е. с запасом на пол-ширины бегунка от каждого из краев линейки, и добавить туда прозрачный фон.
Да вроде никаким $image = imagecreatetruecolor($size_new_h, $size_new_w); Не поняла, это как в процентах считать?
imagecreatetruecolor() returns an image identifier representing a black image of size x_size by y_size. попробуйте добавить PHP: $alpha = imagecolorallocate($im, 0, 0, 0); imagecolortransparent($im,$alpha);
Код (Text): $image = imagecreatetruecolor($size_new_h, $size_new_w); $alpha = imagecolorallocate($image, 0, 0, 0); imagecolortransparent($image,$alpha); если надо было добавлять так, то не помогло
заменила функцию создания на imagecreate - вроде всё работает. Есть разница какой функцией создавать изображение?
ау... отзовитесь... повторяю интересующие вопросы: Странно скрипт работает... или я что-то недопонимаю.... Задаю 2 даты: 28.09.2005 и 28.10.2005 В первом случае получаю результат: 1 год 4 месяца 14 дней во-втором: 3 года 3 месяца 15 дней Что за разница в 1 день? Я так думаю, что это из-за разницы в днях месяца 30-31, но на выходе вроде не должно так быть. http://www.creater.ru/index.php?tid=83&script_id=1574 на основе этого скрипта. Как посчитать кол-во полных недель? Второй вопрос: как сделать прозрачность в созданой картинке imagecreatetruecolor?
Lyona, я уже говорил с вопросами по скрипту обращайтесь к тому, сто его предложил. По поводу прозрачности — если создаете gif то вам нужно как раз imagecreate.
Скрипт который не у кого правильно не работает кроме меня почемуто PHP: <? $base_day = 28; // no leading "0" $base_mon = 9; // no leading "0" $base_yr = 2005; // use 4 digit years! $current_day = 28; $current_mon = 10; $current_yr = 2005; $base_mon_max = date ("t",mktime (0,0,0,$base_mon,$base_day,$base_yr)); $base_day_diff = $base_mon_max - $base_day; $base_mon_diff = 12 - $base_mon - 1; $start_day = 1; $start_mon = 1; $start_yr = $base_yr + 1; $day_diff = ($current_day - $start_day) + 1; // add today $mon_diff = ($current_mon - $start_mon) + 1; // add current month $yr_diff = ($current_yr - $start_yr); $day_diff = $day_diff + $base_day_diff; $mon_diff = $mon_diff + $base_mon_diff; if ($day_diff >= $base_mon_max) { $day_diff = $day_diff - $base_mon_max; $mon_diff = $mon_diff + 1; } if ($mon_diff >= 12) { $mon_diff = $mon_diff - 12; $yr_diff = $yr_diff + 1; } print "The difference between <b>".$base_yr."-".$base_mon."-".$base_day."</b> "; print "and <b>".$current_yr."-".$current_mon."-".$current_day."</b> is:"; print "<br><br>"; $years = "years"; $days = "days"; if ($yr_diff == "1") $years = "year"; if ($day_diff == "1") $days = "day"; print $yr_diff." ".$years.", "; print $mon_diff." month and "; print $day_diff." ".$days; ?> Прошу обратить на комментарии в первых 2-й строчках я задал такие даты 28.9.2005 и 28.10.2005 и получилось