Главная страница
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.03 c
2-1142336458
Fenix
2006-03-14 14:40
2006.03.26
TreeView.


15-1141647688
Новичоккк
2006-03-06 15:21
2006.03.26
Подмена DLL


2-1142248982
Id
2006-03-13 14:23
2006.03.26
Пользователь SYSDBA


1-1140346133
-matrix-
2006-02-19 13:48
2006.03.26
Проблема поиска


15-1141542951
grisme
2006-03-05 10:15
2006.03.26
JAVA - скрипт