|
|
|
| Вообщем есть скрипт, он получает текущею дату, сравнивает ее с заложенной и если эта дата сегодня или будет завтра - выводит это, в противномслучае выводит саму дату. Скрипт ниже, кстатиработает он нормано, есть только одна неувязочка - при получении даты он получает ее так сказать в московском времени, а мне нужен час. пояс +5 часов от него или +8 от гринвича. Из-за этого идет небольшая ошибка в определении завтра и сегодня, как это решить?) Можно конечно насильно прибавлять часы , проверять, прибовлять дни и тд. Но наверное можно сделать встроенными средствами.
Сам скрипт (наверно можно было бы сделать проверку на завтра-сегодня и поизящнее, но как уж сделал)
<?
$now_d=date("d.m.y");
$date="01.01.08";
echo $now_d . "<br>";
//0 - день, 1 - месяц, 2 - год
$now_dm[0]=substr($now_d, 0, 2);
$now_dm[1]=substr($now_d, 3, 2);
$now_dm[2]=substr($now_d, 6, 2);
$date_m[0]=substr($date, 0, 2);
$date_m[1]=substr($date, 3, 2);
$date_m[2]=substr($date, 6, 2);
// сравниваем дату, если полностью совпадает, значит это сегодня
if ($now_dm[0] == $date_m[0] &&
$now_dm[1] == $date_m[1] &&
$now_dm[2] == $date_m[2])
{
$flag='Today';
}
else
{
//увеличиваем текущее число на один и проверяем
//есть ли такая дата, если есть - то сравниваем
//ее с $data, если же нет - значит это был последний
//день месяца, увеличиваем его и число приравниваем 1,
//то же по аналогии с годом
++$now_dm[0];
if (checkdate ($now_dm[1], $now_dm[0], $now_dm[2]))
{ // сравниваем дату, если полностью совпадает, значит это завтра
if ($now_dm[0] == $date_m[0] &&
$now_dm[1] == $date_m[1] &&
$now_dm[2] == $date_m[2])
{
$flag='Tomorrow';
}
}
else // нет такой даты, прибавим месяц?
{
$now_dm[0] = 1;
++$now_dm[1];
if (checkdate ($now_dm[1], $now_dm[0], $now_dm[2]))
{
if ($now_dm[0] == $date_m[0] &&
$now_dm[1] == $date_m[1] &&
$now_dm[2] == $date_m[2])
{
$flag='Tomorrow';
}
}
else //нет такой даты, прибавим год?
{
$now_dm[0] = 01;
$now_dm[1] = 01;
++$now_dm[2];
if (checkdate ($now_dm[1], $now_dm[0], $now_dm[2]))
{
if ($now_dm[0] == $date_m[0] &&
$now_dm[1] == $date_m[1] &&
$now_dm[2] == $date_m[2])
{
$flag='Tomorrow';
}
}
}
}
if (empty($flag))
{
$flag=$date;
}
}
echo "$flag"; //Выводим результат
?>
|
| |
|
|
|
|
|
|
|
для: гость
(08.11.2007 в 09:22)
| | Можно просто определить часовую зону.
<?
ini_set("date.timezone", "Asia/Hong_Kong"); // +8
$now_d = date("d.m.y");
//...
|
| |
|
|
|
|
|
|
|
для: Саня
(08.11.2007 в 09:49)
| | Спасибо, нсчас нашел еще такое решение:
<?
$now_d=gmdate("H:i d.m.y", mktime(date("h")+8));
|
Правда я не совсем понял как оно работает, поэтому упростил :)
<?
$t= time()+(60*60*8);
$now_d=gmdate("H:i d.m.y", $t);
|
| |
|
|
|