PHP: Задача. Просто, что бы не было скучно.
Пользователи, просматривающие топик: none
|
Зашли как: Guest
|
Имя |
Сообщение |
<< Старые топики Новые топики >> |
|
|
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.
|
|
|
RE: PHP: Задача. Просто, что бы не было скучно. - 2009-03-29 23:33:32.323333
|
|
|
Pashkela
Сообщений: 3756
Оценки: 736
Присоединился: 2007-01-03 06:19:40.900000
|
<?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 год";
?>
|
|
|
RE: PHP: Задача. Просто, что бы не было скучно. - 2009-03-29 23:42:02.626666
|
|
|
azimzaim
Сообщений: 320
Оценки: 0
Присоединился: 2009-01-04 22:14:32.760000
|
quote:
ORIGINAL: Pashkela
<?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 год";
?>
Даже не дал над "молодыми" посмеяться.:D
|
|
|
RE: PHP: Задача. Просто, что бы не было скучно. - 2009-03-29 23:43:07.636666
|
|
|
oRb
Сообщений: 4044
Оценки: 597
Присоединился: 2007-03-28 18:45:06.630000
|
<?php
$date1 = "1989-10-27";
echo (int)((time() - strtotime($date1)) / (60*60*24*360))."\n";
?>
|
|
|
RE: PHP: Задача. Просто, что бы не было скучно. - 2009-03-29 23:44:55.940000
|
|
|
Pashkela
Сообщений: 3756
Оценки: 736
Присоединился: 2007-01-03 06:19:40.900000
|
Зато можно улыбнуться надо мной:) oRb как всегда плюс жирный
|
|
|
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] Вообще то нужно было ещё просчитать сколько раз за прожитый человеком период времени было високосных годов и добавить следующее:
<?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 год";
?>
|
|
|
RE: PHP: Задача. Просто, что бы не было скучно. - 2009-03-30 08:55:15.043333
|
|
|
magistr_bender
Сообщений: 977
Оценки: 0
Присоединился: 2008-02-22 20:10:21.133333
|
блин а ведь интересная задача :) можно сплагиатить себе на блог?)))
|
|
|
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 Вот исправленный вариант: <?php
$date1 = "1989-10-27";
echo (gmdate('Y', time() - strtotime($date1)) - 1970)."\n";
?>
|
|
|
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]
|
|
|
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' ……. ) можите дать или линк на ман или разъяснить?
|
|
|
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
|
|
|
RE: PHP: Задача. Просто, что бы не было скучно. - 2009-03-30 15:11:29.636666
|
|
|
magistr_bender
Сообщений: 977
Оценки: 0
Присоединился: 2008-02-22 20:10:21.133333
|
блин и всётаки непойму почему -1970 ? при чём оно тут?
|
|
|
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
|
|
|
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); ?> Еще одни способ придумал:))
|
|
|
|
|