Клубове Дир.бг
powered by diri.bg
търси в Клубове diri.bg Разширено търсене

Вход
Име
Парола

Клубове
Dir.bg
Взаимопомощ
Горещи теми
Компютри и Интернет
Контакти
Култура и изкуство
Мнения
Наука
Политика, Свят
Спорт
Техника
Градове
Религия и мистика
Фен клубове
Хоби, Развлечения
Общества
Я, архивите са живи
Клубове Дирене Регистрация Кой е тук Въпроси Списък Купувам / Продавам 04:14 01.06.24 
Компютри и Интернет
   >> PHP
Всички теми Следваща тема *Кратък преглед

Тема local <--> GMT unix timestampнови  
Автор gonzales ()
Публикувано01.11.01 15:14



Значи, вземам от mySQL unixtimestam, който е по Гринуич, и трябва да ко сравня с текущото време. Обаче РНР ми дава времето според времевата зона на машината. И така, трябва да преубразувам Гринуичго в локално време или обратно, но ми трябва юникс-време. Това което измислих е:

strtotime(gmdate("M d Y H:i:s", time()))
обаче се чудех няма ли по-добър начин, без да минавам през стринг?



Тема Re: local <--> GMT unix timestampнови [re: gonzales]  
Автор bofh (°) (_) (°)
Публикувано02.11.01 10:59



select unix_timestamp(now())
select fldUnixTimeStamp - unix_timestamp(now()) from tblWhatever;

bofh


Тема Re: local <--> GMT unix timestampнови [re: bofh]  
Авторgonzales (Нерегистриран)
Публикувано05.11.01 16:14



май има малко нелазбирателство. в mysql имам поле в което е записано някякво време по Гринуич. обаче трябва да го сравня със времето в момента, а от PHP мога да взема unixtimestamp само в локално време. та се чудех за друг начин, освен описания в началото, да превърна unixtimestamp от GMT в локално време или обратно. тоест, да извади/прибави съответното количество секунди, независимо на коя машина в коя точка на света се изпълнява скрипта.



Тема Re: local <--> GMT unix timestampнови [re: gonzales]  
Автор salle (Един такъв)
Публикувано05.11.01 17:29



select unix_timestamp(now()) as local_unixtimestamp, unix_timestamp(now() - interval 2 hour) as GMT_unixtimestamp, now() as local_time, now() - interval 2 hour as GMT_time;

i t.n.

Izpolzvai mysql DATETIME ili TIMESTAMP vmesto da pazish Unix timestamp (konvertiraneto e elementarno) i shte poluchish strahotnia nabor nam MySQL ot funkcii za smetki s dati i chasove i izobshto shte zabravish za saotvetnit e funkcii v PHP

Nai malkoto shte zabravish kak se konvertirat cahsove, dni, meseci kam secundi - MySQL si go mozhe

primer:
delete from log_table where ts > now() - interval 1 month;

Samo pomisli kak shte napravish neshto tolkova prosto v PHP :)

Linux is like a wigwam - No Windows, No Gates, Apache inside


Тема Re: local <--> GMT unix timestampнови [re: salle]  
Автор gonzales ()
Публикувано05.11.01 18:12



$query = "SELECT metar, UNIX_TIMESTAMP(timestamp) FROM metars WHERE station = '$station' ORDER BY UNIX_TIMESTAMP(timestamp) DESC";
$result = mysql_query($query);
if (mysql_num_rows($result)) {
list($metar, $timestamp) = mysql_fetch_row($result);
if (isset($metar)) {
if ($always_use_cache || $timestamp > strtotime(gmdate("M d Y H:i:s", time())) - 1800) {
^^^^^^^^^
izraza, koito bih iskal da zamenia s drug, ako e vazmozno!



Тема Re: local <--> GMT unix timestampнови [re: gonzales]  
Автор salle (Един такъв)
Публикувано06.11.01 12:34



Това, което ти предложихе дотук беше да вкараш въпросния IF() в SQL-а


т.е. да промениш както select частта така и where клаузата

Имаш таблица metars
и от нея искаш да извадиш (съответно да обработиш в PHP-то) редовете за които ......?

И двата ти if() могат да бъдат обработени още в SQL заявката

вместо
if (isset($metar))
if(.....)

да взимаш в select само тези редове, които те интересуват
примерно
... where station = '$station' and metar is not null and timestamp > now() - 2 hour;

Това е нормалната логика когато работиш с бази данни - няма смисъл да извличаш нещо от БД и после да го филтрираш

Обясни по-подробно каква ти е идеята и премести този въпрос в Клуб Бази Данни

Linux is like a wigwam - No Windows, No Gates, Apache inside


Тема Re: local <--> GMT unix timestamp [re: salle]  
Автор gonzales ()
Публикувано07.11.01 16:35



tva niama otnoshenie kam bazi danni, vaprosa e:

kak moga da prevarna unixtimestamp ot lokalno v GMT vreme ili obratno?

edinstvenoto reshenie koeto imam, e da go napravia na string i posle pak na timestamp, ma se chudeh niama li drug nachin. obiasneniata za bazata danni i t.n. biaha prosto konkretnia sluchai, no i v nego ne stava da sloza proverkata v sql-a, shtoto na vinagi e nuzna.



Тема -нови [re: gonzales]  
Автор bofh (°) (_) (°)
Публикувано07.11.01 17:38



pogledni vnimatelno tova


mysql> select date_sub(from_unixtime(unix_timestamp(now())),interval 2 hour);
+----------------------------------------------------------------+
| date_sub(from_unixtime(unix_timestamp(now())),interval 2 hour) |
+----------------------------------------------------------------+
| 2001-11-07 15:40:33 |
+----------------------------------------------------------------+
1 row in set (0.06 sec)

mysql>


tuk imash i dvata prehoda

from_unixtime
unix_timestamp

sega izqsni li ti se?

bofh

Редактирано от bofh на 07.11.01 17:41.



Тема Re: -нови [re: bofh]  
Автор salle (Един такъв)
Публикувано08.11.01 10:47



date_sub(from_unixtime(unix_timestamp(now())),interval 2 hour)

еквивалентен запис на тово е:

from_unixtime(unix_timestamp(now())) - interval 2 hour;
А според мен е още по-разбираемо

естествено това което правиш е +1-1 ама това е друга тема

gonzales
Цялата работа е, че в PHP сметките с часове и дати са доста дървени докато в mysql са простичко и весело нещо

Linux is like a wigwam - No Windows, No Gates, Apache inside


Тема Re: -нови [re: salle]  
Автор gonzales ()
Публикувано09.11.01 17:37



ДА НО НА МЕН МИ ТРЯБВА ДА ГО НАПРАВЯ В PHP

e очевидно никой не се сеща за по-добро решение на проблема, както и да е :-)




Всички темиСледваща тема*Кратък преглед
Клуб :  


Clubs.dir.bg е форум за дискусии. Dir.bg не носи отговорност за съдържанието и достоверността на публикуваните в дискусиите материали.

Никаква част от съдържанието на тази страница не може да бъде репродуцирана, записвана или предавана под каквато и да е форма или по какъвто и да е повод без писменото съгласие на Dir.bg
За Забележки, коментари и предложения ползвайте формата за Обратна връзка | Мобилна версия | Потребителско споразумение
© 2006-2024 Dir.bg Всички права запазени.