Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.03.26;
Скачать: CL | DM;

Вниз

Знатокам PHP   Найти похожие ветки 

 
**Сергей**   (2006-03-05 03:17) [0]

Имеется строка 03.05.1980

Нужно на PHP определить, сколько прошло полных лет от сегоднешней даты.


 
**Сергей**   (2006-03-05 06:50) [1]

Кажется, нашел

$daysGone=abs(ggToJD($birthMonth, $birthDay, $birthYear)-ggToJD(date("m"),   date("d"), date("Y")));


 
mfender ©   (2006-03-05 07:56) [2]


> $daysGone=abs(ggToJD($birthMonth, $birthDay, $birthYear)-
> ggToJD(date("m"),   date("d"), date("Y")));

Сам-то понял, что написал?
Это отличное решение - ggToJD :))) Только не в PHP такой ф-ции... Да и из строка надо как-то date("d"), date("m") и date("Y") вычислить...


<?php
$date = explode(".", "03.05.1980"); //предполагаем, что строка имеет всегда правильный формат
$actualTime = time();
$indicatedTime = gmmktime(0, 0, 0, (int)$date[1], (int)($date[0]), (int)($date[2])); //Получим timestamp времени из строки
$calculatedTime = $actualTime - $indicatedTime; //Разница между текущим временем и указанным в пресловутой строке в секундах:

//Теперь можно, например, это количество секунд разделить на количество секунд в году:
$calculated = floor($calculatedTime/31536000);
?>


 
mfender ©   (2006-03-05 07:58) [3]

Разумеется, тут нужно идти немного другим путём, и считать количество секунд в году не по календарю. Но смысл таков.


 
**Сергей**   (2006-03-05 08:30) [4]

Мой пример работает. Я забыл вставить функцию

function ggToJD($month, $day, $year)
{
if($month<3)
{$month+=12;$year-=1;}
$jd=$day+floor((153*$month-457)/5)+365*$year+floor($year/4)- floor($year/100)+floor($year/400)+1721118.5;
return($jd);
}


 
mfender ©   (2006-03-05 09:02) [5]


> $day+floor((153*$month-457)/5)+365*$year+floor($year/4)-
>  floor($year/100)+floor($year/400)+1721118.5;

Что сие означает? Я что-то не догоню никак... Вобщем, хотелось бы комментариев.


 
**Сергей**   (2006-03-05 10:59) [6]

Ф-ия переводит дату из григорианского календаря в юлианский. Затем узнаем количество прожитых дней а потом и лет.


 
mfender ©   (2006-03-05 14:02) [7]


> Ф-ия переводит дату из григорианского календаря в юлианский.

А зачем? 8^o


 
**Сергей**   (2006-03-05 14:18) [8]

Я когда-то писал это для скрипта который строит биоритмы. Там это требовалось.



Страницы: 1 вся ветка

Текущий архив: 2006.03.26;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.048 c
15-1141480795
постигаю
2006-03-04 16:59
2006.03.26
окно


15-1141369310
dimonf
2006-03-03 10:01
2006.03.26
Подскажите плиз, какой нить нормальный DVD Ripper.


2-1142246826
Handle
2006-03-13 13:47
2006.03.26
Цвет пикселя под курсором


2-1141927658
Хрюша
2006-03-09 21:07
2006.03.26
Запуск файлов


8-1129748044
Alexandr Rivvin
2005-10-19 22:54
2006.03.26
Проигрывание MP3