Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Работа с датами, сравнение

Сообщения:  [1-5] 

 
 автор: nikita2206   (10.06.2009 в 01:00)   письмо автору
 
   для: Zilog   (09.06.2009 в 11:56)
 

<?
function dateInDate($dateA1$dateA2$dateB1$dateB2){
    if(
$dateA1 $dateA2) list($dateA1$dateA2) = array($dateA2$dateA1);
    if(
$dateB1 $dateB2) list($dateB1$dateB2) = array($dateB2$dateB1);
    
    if(
$dateB1 <= $dateA1 && $dateB2 $dateA1$dateBetween = array($dateA1$dateB2 $dateA2 $dateB2 $dateA2);
    elseif(
$dateB1 $dateA1 && $dateB2 $dateA1$dateBetween = array($dateB1$dateB2 $dateA2 $dateB2 $dateA2);
    else 
$dateBetween FALSE;
    return 
$dateBetween;
}
$day    3600 24;
$result dateInDate(time() - $day 5time() + $day 5time() - $day 7time() + $day 3);
if(!
$result) echo 'Совпадений не найдено.';
else echo 
'Begin in: '.date('Y-m-d'$result[0]).' and ends in: '.date('Y-m-d'$result[1]);

— Вот такая функция должна, я надеюсь, работать. Возвращает FALSE, если промежутки не пересекаются, иначе возвратит массив, в котором описан пересекающийся промежуток "от" и "до"…

П.С. насколько я помню, да, unix timestamp и mysql timestamp - это абсолютно разные вещи, покрайней мере вот такой код:
mysql_query('INSERT INTO `table` (`time`) VALUES ('.time().')'); // столбец time - timestamp'овый
запишет в БД: 0000-00-00 00:00
поэтому надо так записывать:
mysql_query('INSERT INTO `table` (`time`) VALUES ('.date('YmdHis' [, $timestamp]).')');
и так доставать:
$timestamp = strtotime($row['time']);

  Ответить  
 
 автор: тест!ывфыв   (09.06.2009 в 22:22)
 
   для: Zilog   (09.06.2009 в 11:56)
 

тест тест

  Ответить  
 
 автор: Zilog   (09.06.2009 в 11:56)   письмо автору
 
   для: nikita2206   (09.06.2009 в 02:54)
 

>или вам надо сделать проверку, входит ли промежуток дат в другой промежуток, и этот промежуток вывести???

Или. Только промежутков, с которыми надо делать проверку - несколько.
Формат даты выбрал Unix timespamp. Год для всех случаев устанавливаю принудительно - 1970, ибо мне важны только месяца и дни.
Само сравнение пока ещё не делал.

  Ответить  
 
 автор: nikita2206   (09.06.2009 в 02:54)   письмо автору
 
   для: Zilog   (09.06.2009 в 02:30)
 

<?
$date1 
time() - (3600 24 2); // позавчера
$userdate time() - (3600 24 1); // вчера
$date2 time(); // сегодня
if(($userdate $date2 && $userdate $date1) || ($userdate $date2 && $userdate $date1)) echo date('Y-m-d H:i:s'$userdate).' - Находится между: '.date('Y-m-d H:i:s'$date1).' и '.date('Y-m-d H:i:s'$date2);

— этот код подходит под проверку одной даты, если надо две, то просто надо додумать…
или вам надо сделать проверку, входит ли промежуток дат в другой промежуток, и этот промежуток вывести???

  Ответить  
 
 автор: Zilog   (09.06.2009 в 02:30)   письмо автору
 
 

Есть несколько периодов дат (на примере их четыре: A,B,C и D).

||--------A---------||-----------B---------||-----------C-----------||------------D----------||
.............................................. {Uf------------ user select --------------Ut} ............

Каждый описывается хранится в БД двумя полями timestamp, куда планируется заносить даты в формате дд.мм.

Есть две даты заданные пользователем, в таком же формате день-месяц.

Вопрос - как бы сделать сравнение дат (какие периоды задеваем), как скажется на сравнении отсутствие данных по году в обоих случаях?

И ещё вопрос: я правильно понял, что метка времени Unix и mysql timestamp - разные вещи?

  Ответить  

Сообщения:  [1-5] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования