Главная страница
    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.041 c
1-1140277657
Игорь Степанов
2006-02-18 18:47
2006.03.26
Вывод bitmap-изображения на канву компонента Image


15-1141470897
DenMaster
2006-03-04 14:14
2006.03.26
Можно ли такое сделать?


15-1141379233
Mozart
2006-03-03 12:47
2006.03.26
Звуковой файл в линию через модем...


15-1141454525
guru-ru
2006-03-04 09:42
2006.03.26
Пример.


15-1141621833
Новичоккк
2006-03-06 08:10
2006.03.26
Ассемблер





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский