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

Форум PHP

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

 

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

вид форума:
Линейный форум Структурный форум

тема: Сравнение с местным временем!
 
 автор: sedek   (18.11.2004 в 02:46)   письмо автору
 
 

Как можно сделать сравнение со временем на сервере!
допустим если время на сервере от 8:00 до 9:00 то сообщение выводится а если меньше этого диапазона или больше то не выводится!

   
 
 автор: cheops   (18.11.2004 в 12:15)   письмо автору
 
   для: sedek   (18.11.2004 в 02:46)
 

Это не сложно:
<?php
  
if(date ("G") == 8)
  {
     
// Вывести сообщение
  
}
?>


http://www.softtime.ru/dic/id_dic=193&id_group=7

   
 
 автор: sedek   (18.11.2004 в 13:40)   письмо автору
 
   для: cheops   (18.11.2004 в 12:15)
 

Нет мне нужно чтоб не точно если 8 то выводит!
А если больше 8:00 но меньше 9:00 то выводит!

   
 
 автор: Artemy   (18.11.2004 в 13:59)   письмо автору
 
   для: sedek   (18.11.2004 в 13:40)
 

А так пойдёт?
<?php 
  
if(date ("G")> ||  date ("G") < 9
  { 
     
// Вывести сообщение 
  

?> 

   
 
 автор: cheops   (18.11.2004 в 14:21)   письмо автору
 
   для: sedek   (18.11.2004 в 13:40)
 

Этот скрипт именно так и делает - он просто отрезает от времени все минуты и секунды - 8:45 к примеру этому условию удовлетворяет. Поробуйте вывести
<?php
  
echo date ("G");
?>

   
 
 автор: sedek   (18.11.2004 в 17:28)   письмо автору
 
   для: cheops   (18.11.2004 в 14:21)
 

А если надо увеличить разрыв допустим с 8 до 12?

   
 
 автор: cheops   (18.11.2004 в 17:42)   письмо автору
 
   для: sedek   (18.11.2004 в 17:28)
 

Тогда нужно воспользоваться решением, предложенным Artemy, двумя постами выше, в данном формате возвращается текущий час в виде целого числа.

   
 
 автор: sedek   (18.11.2004 в 22:20)   письмо автору
 
   для: cheops   (18.11.2004 в 17:42)
 

немного не так:

<?php 
  
if(date ("G") == ||  date ("G") < 9
  { 
     
// Вывести сообщение 
  

?>

А возможно както остановить его после 1 выполнения?
Надо чтобы он при обращении к нему выполнил и остановился на 1 час!

   
 
 автор: cheops   (18.11.2004 в 22:51)   письмо автору
 
   для: sedek   (18.11.2004 в 22:20)
 

Можно значение часа сохранять в файле. При каждом обращении к странице извлекать это значение из файла, если оно отличается от текущего часа - загружать страницу, а в файл записывать новое значение. Если значение в файле совпадает с текущим часом - доступ запрещать.

   
 
 автор: sedek   (18.11.2004 в 23:07)   письмо автору
 
   для: cheops   (18.11.2004 в 22:51)
 

Можно поподробнее пожалуйста!
хотелось бы чтобы он открывал файл counter.txt там уже стоит цифра вот надо чтобы он не трогая ту цифру записывал рядышком своё значение через символ - а цифра там может быть и 2 значная и выше до 5 значной!

   
 
 автор: cheops   (18.11.2004 в 23:39)   письмо автору
 
   для: sedek   (18.11.2004 в 23:07)
 

Лучше тогда поместить обе цифры в массив упоковать в строку функцией serialize(), а при извлечении из файла обратно распаковать в массив при помощи функции unserialize()
<?php
  $filename 
"counter.txt";
  
$count[0] = 23456;
  
$count[1] = Date("G");
  
$str serialize($count); // a:2:{i:0;i:23456;i:1;s:2:"23";}
  
$fd fopen($filename"w"); 
  
fwrite($fd$str);
  
fclose($fd); 
?>

Извлечение
<?php
  $filename 
"counter.txt";
  
$fd fopen($filename"r"); 
  
$str fread($fdfilesize($filename)); 
  
fclose($fd); 
  
$count unserialize($str);
  echo 
$count[0]."<br>";
  echo 
$count[1]."<br>";
?>

   
 
 автор: sedek   (19.11.2004 в 00:04)   письмо автору
 
   для: cheops   (18.11.2004 в 23:39)
 

А в отдельный файл если?

   
 
 автор: cheops   (19.11.2004 в 00:14)   письмо автору
 
   для: sedek   (19.11.2004 в 00:04)
 

Можно и в отдельные файлы:
<?php 
  $filename 
"counter.txt"
  
$filenam "count.txt"
  
$count[0] = 23456
  
$count[1] = Date("G"); 
  
$fd fopen($filename"w"); 
  
fwrite($fd$count[0]); 
  
fclose($fd); 
  
$fd fopen($filenam"w"); 
  
fwrite($fd$count[1]); 
  
fclose($fd); 
?>

   
 
 автор: sedek   (19.11.2004 в 01:12)   письмо автору
 
   для: cheops   (19.11.2004 в 00:14)
 

что-то я совсем запутался!
если можно то вот к этому надо
<?php 
  
if(date ("G") == ||  date ("G") < 12
  { 
     
// Вывести сообщение 
  

?>

   
 
 автор: cheops   (19.11.2004 в 01:34)   письмо автору
 
   для: sedek   (19.11.2004 в 01:12)
 

Можно сделать так
<?php 
  $filename 
"count.txt";
  
$fd fopen($filename"r"); 
  
$hour fread($fdfilesize($filename)); 
  
fclose($fd); 
  if(
$hour date ("G")  && $hour >= (date ("G") + 5)) 
  { 
    
// Вывести сообщение
    // ........
    // Переписать счётчик
    
$fd fopen($filename"w"); 
    
fwrite($fddate ("G"));
    
fclose($fd); 
  } 
?>

Только нужно определится каков будет интервал - 5 часов или меньше...

PS Кстати, условие следует передалать следующим образом
<?php 
  
if(date ("G")  >=  ||  date ("G")  <  12
  { 
     
// Вывести сообщение 
  

?>

иначе появляется возможность отправлять сообщения между 0 и 12 часами...

   
 
 автор: sedek   (19.11.2004 в 00:10)   письмо автору
 
   для: cheops   (18.11.2004 в 23:39)
 

значит с помощью этой функции можно упаковать много разных масивов записать в один файл и когда надо распаковывать!

   
 
 автор: cheops   (19.11.2004 в 00:12)   письмо автору
 
   для: sedek   (19.11.2004 в 00:10)
 

Распаковывать их следует перед использованием, когда читаем информацию из файла. Эти функции преобразуют массивы в строку и закодированную строку обратно в массив.

   
Rambler's Top100
вверх

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