Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2006.03.26;
Скачать: [xml.tar.bz2];

Вниз

Знатокам 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.035 c
2-1142263597
VitV
2006-03-13 18:26
2006.03.26
Interbase. Пусто поле....


2-1141913478
Новочеркасский Волк
2006-03-09 17:11
2006.03.26
Интересные компоненты.


2-1142114101
ctudent
2006-03-12 00:55
2006.03.26
Как сделать?


4-1136581044
Rommel
2006-01-06 23:57
2006.03.26
Control на рабочем столе


15-1141388059
konda
2006-03-03 15:14
2006.03.26
3D-образы покинули пределы мониторов





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский