Главная страница
    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.038 c
1-1140678976
kyn66
2006-02-23 10:16
2006.03.26
Найти пароль в файле Excel.


2-1142240964
mrAndersen
2006-03-13 12:09
2006.03.26
Как добавить *.gif файл на форму?


2-1141910495
11111
2006-03-09 16:21
2006.03.26
Ерунда какая-то с числами


1-1140182548
Eugene Tarabanovskyi
2006-02-17 16:22
2006.03.26
Изменение параметров окна при запуске приложения


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