Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

PHP: Задача. Просто, что бы не было скучно.

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Веб-программинг] >> PHP: Задача. Просто, что бы не было скучно.
Имя
Сообщение << Старые топики   Новые топики >>
PHP: Задача. Просто, что бы не было скучно. - 2009-03-29 23:05:38.836666   
azimzaim

Сообщений: 320
Оценки: 0
Присоединился: 2009-01-04 22:14:32.760000
Есть данные - день рождения пользователи в формате:
1) $date1="1989-10-27" (год - месяц - день);
2) $date2="1941-01-13" (год - месяц - день);
Найдите наиболее легкий метод вычислить сколько человеку лет в данный момент для варианта 1 и 2.

Post #: 1
RE: PHP: Задача. Просто, что бы не было скучно. - 2009-03-29 23:33:32.323333   
Pashkela

Сообщений: 3756
Оценки: 736
Присоединился: 2007-01-03 06:19:40.900000
&lt;?php $date='1941-01-13'; $arr = explode('-',$date); $day = $arr[2]; $month = $arr[1]; $year = $arr[0]; $birthdate_unix = mktime(0,0,0,$month, $day, $year); $current_unix = time(); $period_unix=$current_unix - $birthdate_unix; $age_in_years = floor($period_unix / (365*24*60*60)); echo "Ваш возраст составляет $age_in_years год"; ?&gt;
Post #: 2
RE: PHP: Задача. Просто, что бы не было скучно. - 2009-03-29 23:42:02.626666   
azimzaim

Сообщений: 320
Оценки: 0
Присоединился: 2009-01-04 22:14:32.760000
quote:

ORIGINAL: Pashkela

&lt;?php $date='1941-01-13'; $arr = explode('-',$date); $day = $arr[2]; $month = $arr[1]; $year = $arr[0]; $birthdate_unix = mktime(0,0,0,$month, $day, $year); $current_unix = time(); $period_unix=$current_unix - $birthdate_unix; $age_in_years = floor($period_unix / (365*24*60*60)); echo "Ваш возраст составляет $age_in_years год"; ?&gt;
Даже не дал над "молодыми" посмеяться.:D
Post #: 3
RE: PHP: Задача. Просто, что бы не было скучно. - 2009-03-29 23:43:07.636666   
oRb

Сообщений: 4044
Оценки: 597
Присоединился: 2007-03-28 18:45:06.630000
&lt;?php $date1 = "1989-10-27"; echo (int)((time() - strtotime($date1)) / (60*60*24*360))."\n"; ?&gt;
Post #: 4
RE: PHP: Задача. Просто, что бы не было скучно. - 2009-03-29 23:44:55.940000   
Pashkela

Сообщений: 3756
Оценки: 736
Присоединился: 2007-01-03 06:19:40.900000
Зато можно улыбнуться надо мной:) oRb как всегда плюс жирный
Post #: 5
RE: PHP: Задача. Просто, что бы не было скучно. - 2009-03-30 00:10:18.523333   
azimzaim

Сообщений: 320
Оценки: 0
Присоединился: 2009-01-04 22:14:32.760000
Кстати, и Pashkela, и oRb  допустили одну небольшую ошибку:
oRb, ты знаешь сколько в  году дней? Почему ты написал 360?[sm=ag.gif]
Вообще то нужно было ещё просчитать сколько раз за прожитый человеком период времени было високосных годов и добавить следующее:
&lt;?php $date='1941-01-13'; $arr = explode('-',$date); $day = $arr[2]; $month = $arr[1]; $year = $arr[0]; $birthdate_unix = mktime(0,0,0,$month, $day, $year); $current_unix = time(); $period_unix=$current_unix - $birthdate_unix; $key=intval(date('Y')/4); $extratime=(($key*4-$year)/4); $age_in_years = floor($period_unix / ((365+$extratime)*24*60*60)); echo "Ваш возраст составляет $age_in_years год"; ?&gt;
Post #: 6
RE: PHP: Задача. Просто, что бы не было скучно. - 2009-03-30 08:55:15.043333   
magistr_bender

Сообщений: 977
Оценки: 0
Присоединился: 2008-02-22 20:10:21.133333
блин а ведь интересная задача :)
можно сплагиатить себе на блог?)))
Post #: 7
RE: PHP: Задача. Просто, что бы не было скучно. - 2009-03-30 09:28:25.810000   
oRb

Сообщений: 4044
Оценки: 597
Присоединился: 2007-03-28 18:45:06.630000

quote:

ORIGINAL: Masun

oRb, ты знаешь сколько в  году дней? Почему ты написал 360?[sm=ag.gif]

Я ближе к ночи начинаю жить по собственному календарю :D
Вот исправленный вариант:
&lt;?php $date1 = "1989-10-27"; echo (gmdate('Y', time() - strtotime($date1)) - 1970)."\n"; ?&gt;
Post #: 8
RE: PHP: Задача. Просто, что бы не было скучно. - 2009-03-30 13:21:26.653333   
azimzaim

Сообщений: 320
Оценки: 0
Присоединился: 2009-01-04 22:14:32.760000
quote:

ORIGINAL: magistr_bender

блин а ведь интересная задача :)
можно сплагиатить себе на блог?)))
нет[sm=ae.gif]
Post #: 9
RE: PHP: Задача. Просто, что бы не было скучно. - 2009-03-30 14:39:48.906666   
magistr_bender

Сообщений: 977
Оценки: 0
Присоединился: 2008-02-22 20:10:21.133333
я вот только думаю, что если я сплагиачу то вы всё равно этому не сможете воспривятствовать ))))
ну раз нет так нет

я блин вот немогу только понять написанное орбом
<?php
$date1 = "1989-10-27";
echo (gmdate('Y', time() - strtotime($date1)) - 1970)."\n";
?>
вот этот участок как работает gmdate('Y', time() - strtotime($date1)) - 1970
при чём тут 1970 и что такое gmdate,('Y' ……. )
можите дать или линк на ман или разъяснить?

Post #: 10
RE: PHP: Задача. Просто, что бы не было скучно. - 2009-03-30 15:06:00.890000   
Pashkela

Сообщений: 3756
Оценки: 736
Присоединился: 2007-01-03 06:19:40.900000
http://ru.php.net/gmdate
http://ru.php.net/strtotime
Post #: 11
RE: PHP: Задача. Просто, что бы не было скучно. - 2009-03-30 15:11:29.636666   
magistr_bender

Сообщений: 977
Оценки: 0
Присоединился: 2008-02-22 20:10:21.133333
блин и всётаки непойму почему -1970 ? при чём оно тут?
Post #: 12
RE: PHP: Задача. Просто, что бы не было скучно. - 2009-03-30 15:13:14.886666   
azimzaim

Сообщений: 320
Оценки: 0
Присоединился: 2009-01-04 22:14:32.760000
quote:

ORIGINAL: magistr_bender

блин и всётаки непойму почему -1970 ? при чём оно тут?
Юникс тайм начинает свой бег с 01.01.1970
Post #: 13
RE: PHP: Задача. Просто, что бы не было скучно. - 2009-11-13 10:37:32.033333   
Agent Smith

Сообщений: 976
Оценки: 0
Присоединился: 2007-04-10 21:56:49.593333
<?
list($year, $month, $day)=explode("-", $date);
echo (date("Y")- $year-(intval( $month.$day)>intval(date("m").date("d")))?1:0);
?>

Еще одни способ придумал:))
Post #: 14
Страниц:  [1]
Все форумы >> [Веб-программинг] >> PHP: Задача. Просто, что бы не было скучно.







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.