Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Время выполнения cron`а


Автор: Aliance 8.12.2005, 22:03
У меня есть крон, вгоняющий в БД данные.
Хочу так же чтобы писалось нечто такое:
Цитата

последнгее обновление было: <время>


Как реализовать такое? Как прочитать время выполнения скрипта в cron`е?

Автор: Sardar 8.12.2005, 22:58
Лучше из своего скрипта создавать некий файл маркер, по дате модиффикации которого можно узнать когда в последний раз скрипт отрабатывал. По аналогии можно писать в базу, но файлом будет проще и лучше.

Автор: Aliance 8.12.2005, 23:13
А у меня была немного другая идея, что если сделать 1 доп. поле - заполнять туда текущее время (т.е. время выполнения скрипта)

Автор: CyClon 9.12.2005, 14:24
Хм ну что ты будешь в кажом поле писать время??? Моно тиблицу новую или как уже сказаил файл. В данном случае так правильнее будет.

Автор: Aliance 9.12.2005, 15:19
Тогда файл, а в него время, да?
Ну это просто smile спасибо всем за подсказки smile

Автор: Sardar 9.12.2005, 16:03
Цитата(Aliance @ 9.12.2005, 14:19)
Тогда файл, а в него время, да?

Нет, открывать файл, писать, это всё отнимет лишнее время. Просто (пере)создавай файл, снимай его время сздания/модиффикации после, быстрее работать будет.

Автор: Aliance 9.12.2005, 18:23
Я не умею так делать smile

Автор: Sardar 9.12.2005, 23:33
http://nl3.php.net/filemtime - узнаём время последней модиффикации (такое поле в дескрипторе каждого файла)

http://nl3.php.net/touch - изменить время модиффикации файла, просто укажи имя, всё остальное он выставит в текущее время.

Автор: Aliance 11.12.2005, 20:34
Окей, все работает отлично - только вот что, у меня серверное время на 8 часов отстает от Московского.
Как это исправить?

Код

<?php

$filename = 'somefile.txt';

if ($_GET['act'] == "modify") {

if (file_exists($filename)) {
   touch($filename);
} else {
   echo "Не найден файл.";
}

} else {

if (file_exists($filename)) {
   echo "$filename был модифицирован в " . date ("H:i:s.", filemtime($filename));
} else {
   echo "Не найден файл.";
}

}

?> 


Все работает, но мне нужно чтобы вместо H выводилось H+8 smile

Автор: Mal Hack 11.12.2005, 21:43
Код

<?php

print date( "j.m.Y H:i:s" , time() ) . "<br>"; // Время сервера

$needle = 3;  // Нужный нам часовой пояс
$tm = ( date( "Z" ) / 60 / 60 ); // Смещение часового пояса сервера относительно GMT
$sm = ( $needle * 3600 ) - date( "Z" ); // Смещение на нужный часовой пояс

print date( "j.m.Y H:i:s" , time() + $sm ); // Время, со смещением на наш часовой пояс

?>

Автор: Aliance 12.12.2005, 00:10
Спасибо за помощь, все заработало и все работает именно так, как я хотел smile smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)