Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
 
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> Как узнать сколько времени осталось до даты
Strannik  
 ۩     Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 806
Пользователь №: 17108
На форуме: 16 лет, 7 дней
Карма: 1




Здравствуйте

$data1="28-07-2011 05:16";
$data2="21-07-2011 23:16";

Подскажите пожалуйста, как вывести сколько дней часов и минут осталось от даты $data2 до даты $data1 ?
причем:
1)если осталось несколько дней, часов и минут вывести "осталось .. дней .. часов .. минут"
2)если осталось несколько часов и минут вывести "осталось .. часов .. минут"
3)если осталось несколько минут вывести "осталось .. минут"
PMICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
kovaldm  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1266
Пользователь №: 24135
На форуме: 14 лет, 5 месяцев, 21 день
Карма: 47




Используй функции для работы с датой и временем.

Переводишь даты в секунды, вычитаешь из большего меньшее, результат преобразуешь в дни/часы/минуты/секунды.


--------------------
sdfcfgvbgmlmknhvdfgctghvbj
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
ИНСИ  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



грех - смерть
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 2566
Пользователь №: 18040
На форуме: 15 лет, 9 месяцев, 7 дней
Карма: 78




1. http://php.net/manual/ru/function.date-diff.php
2. http://www.php.net/manual/ru/datetime.diff.php

Выбирай на свой вкус и тести ...
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
killer8080  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 9630
Пользователь №: 26630
На форуме: 14 лет, 17 дней
Карма: 664




INSIDIOUS
но для них нужен PHP 5 >= 5.3.0, не на всех хостингах есть.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
ИНСИ  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



грех - смерть
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 2566
Пользователь №: 18040
На форуме: 15 лет, 9 месяцев, 7 дней
Карма: 78




killer8080 если на твоем хостинге нет php 5, меняй хостинг! smile.gif
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Strannik  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 806
Пользователь №: 17108
На форуме: 16 лет, 7 дней
Карма: 1




если делаю так

$data1="28-07-2011 05:16";
$data2="21-07-2011 01:16";
$dat1=mktime(01, 16, 0, 07, 21, 2011);
$dat2=mktime(05, 16, 0, 07, 28, 2011);
$dat=$dat2-$dat1;
echo date("d H:i",$dat);


выдает неправильный результат (08 05:00)
PMICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
killer8080  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 9630
Пользователь №: 26630
На форуме: 14 лет, 17 дней
Карма: 664




Цитата (INSIDIOUS @ 25.07.2011 - 14:21)
killer8080 если на твоем хостинге нет php 5, меняй хостинг!

на моём хостинге, точнее хостинге заказчика, PHP Version 5.2.6-1+lenny13, менять хостинг пока причин нет :)
Strannik
вот это
$data1="28-07-2011 05:16";
$data2="21-07-2011 01:16";
$dat1=mktime(01, 16, 0, 07, 21, 2011);
$dat2=mktime(05, 16, 0, 07, 28, 2011);
$dat=$dat2-$dat1;

можно записать проще
$data1="28-07-2011 05:16";
$data2="21-07-2011 01:16";
$dat = strtotime($data1) - strtotime($data2);

а дальше если php >= 5.3.0 ,то как посоветовал INSIDIOUS, если более старая версия php то чисто арифметически, делишь на количество секунд в сутках и округляешь в меньшую сторону, получишь количество дней, ну и так далее.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Strannik  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 806
Пользователь №: 17108
На форуме: 16 лет, 7 дней
Карма: 1




функции как посоветовал INSIDIOUS я не могу пока понять(:
PMICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
ИНСИ  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



грех - смерть
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 2566
Пользователь №: 18040
На форуме: 15 лет, 9 месяцев, 7 дней
Карма: 78




Strannik ничего сложного нет :) попробуй так:
if(!class_exists('DateTime')) exit('Смени хостера :)');

$startDay = new DateTime('21-07-2011 01:16');
$endDay = new DateTime('28-07-2011 05:16');
$interval = $endDay->diff($startDay);

echo $interval->format('%d days, %m month. %y year');
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
ИНСИ  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



грех - смерть
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 2566
Пользователь №: 18040
На форуме: 15 лет, 9 месяцев, 7 дней
Карма: 78




Strannik если не сработает код выше, то можешь использовать этот код:
function dateDiff($startDay, $endDay) {
$endDay = strtotime($endDay);
$startDay= strtotime($startDay);

$difference = abs($endDay - $startDay);
$return['days'] = floor($difference / 86400);
$return['hours'] = floor($difference / 3600) % 24;
$return['minutes'] = floor($difference / 60) % 60;

return $return;
}
print_r( dateDiff('21-07-2011 01:16','28-07-2011 05:16') );


На выходе получаешь массив с данными.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Strannik  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 806
Пользователь №: 17108
На форуме: 16 лет, 7 дней
Карма: 1




спасибо народ
PMICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Guest  
Дата
Цитировать сообщение


Гость пожелал остаться неизвестным

Unregistered









<?php

$futuredate = "06.06.2013";
$datenow = time();
$futuredate = strtotime($futuredate);
$max = $futuredate - $datenow;

$day = intval($max/60/60/24);
$hour = intval(($max - $day*60*60*24)/60/60);
$minut = intval(($max - $day*60*60*24 - $hour*60*60)/60);
$ec = intval($max -$day*60*60*24- $hour*60*60 -$minut*60);

echo $day."-day ".$hour."-hour ".$minut.'-min '.$ec.'-second';


?>
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
ilyaplot  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Старик
***

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 132
Пользователь №: 36491
На форуме: 12 лет, 1 месяц, 13 дней
Карма: 3




$date_start = "28-07-2011 05:16";
$date_end="21-07-2011 01:16";
$seconds = strtotime($date_end) - strtotime($date_start); // Получим время в секундах


--------------------
PMПисьмо на e-mail пользователюСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
rooor  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1578
Пользователь №: 29109
На форуме: 13 лет, 7 месяцев, 11 дней
Карма: 80




а на дату топика никто не смотрит, да?) smile.gif
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
FatCat  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



חשב את עצמו
******

Профиль
Журнал
Группа: Администратор
Почтальон группы
Сообщений: 6963
Пользователь №: 1
На форуме: 19 лет, 1 месяц, 12 дней
Карма: 145




Цитата (killer8080 @ 25.07.2011 - 11:28)
для них нужен PHP 5 >= 5.3.0, не на всех хостингах есть

Я писал код еще под пхп4: http://phpforum.ru/index.php?showtopic=0&v...ndpost&p=307797


--------------------
Бесплатному сыру в дырки не заглядывают...
PMПисьмо на e-mail пользователюICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Ответ в темуСоздание новой темыСоздание опроса