dátum és idő formátum php-ban

jason30 képe

Sziasztok!

Névnapot szeretnék kiíratni a honlapomon, be is szúrom a php kódot, de nem jó az időzóna.
6 órával mutat kevesebbet egy bármilyen dátum és idő mutató php kód.
A Drupal 6.8-at használom és be van állítva a helyes dátumformátum: Europe/Budapest.
Amelyik php kód a time() függvényt használja ott megoldottam a problémát: time() + (6*60*60). Érdekes, hogy ugyanez a kód jól mutatja az időt, ha nem drupal alatt használom.
A névnapos php-kód a getdate() függvényt használja, itt nincs time() függvény és nem tudom, hogyan lehetne kiküszöbölni a problémát? (ez nem írja ki az időt,de hajnalban mindig kiderül, hogy rossz napnál jár, így gondolom ez is 6 órával lehet elcsúszva, mint a többi)

a kód:

# aktuális dátum lekérdezése
$_datum = getdate();
 
# TÖMB: hónapok nevei magyarul
$_honap = array
	("január","február","március","április",
	"május","június","július","augusztus",
	"szeptember","október","november","december");
 
# TÖMB: hét napjainak nevei magyarul
$_hetnapja = array
	("","hétfő","kedd","szerda","csütörtök",
	"péntek","szombat","vasárnap");
 
# TÖMBÖK: névnapok
$_januar = array
	("","ÚJÉV","Ábel","Genovéva","Titusz","Simon",
	"Boldizsár","Attila","Gyöngyvér","Marcell",
	"Melánia","Ágota","Ernő","Veronika",
	"Bódog","Lóránt","Gusztáv","Antal","Piroska",
	"Sára","Sebestyén","Ágnes","Vince","Zelma",
	"Timót","Pál","Vanda","Angelika","Károly,",
	"Adél","Martina","Marcella");
 
$_februar = array
	("","Ignác","Karolina","Balázs","Ráhel","Ágota",
	"Dóra","Tódor","Aranka","Abigél","Elvira",
	"Bertold","Lívia","Ella, Linda","Bálint","Kolos",
	"Julianna","Donát","Bernadett","Zsuzsanna","Álmos",
	"Eleonóra","Gerzson","Alfréd","Mátyás","Géza",
	"Edina","Ákos, Bátor","Elemér");
 
$_marcius = array
	("","Albin","Lujza","Kornélia","Kázmér","Adorján",
	"Leonóra","Tamás","Zoltán","Franciska","Ildikó",
	"Szilárd","Gergely","Krisztián, Ajtony","Matild",
	"Kristóf","Henrietta","Gertrúd","Sándor","József",
	"Klaudia","Klaudia","Benedek","Beáta","Emőke","Gábor",
	"Irén","Emánuel","Hajnalka","Gedeon","Auguszta",
	"Zalán","Árpád");
 
$_aprilis = array
	("","Hugó","Áron","Buda, Richárd","Izidor","Vince",
	"Vilmos, Bíborka","Herman","Dénes","Erhard","Zsolt",
	"Zsolt, Leó","Gyula","Ida","Tibor","Tas, Anasztázia",
	"Csongor","Rudolf","Andrea","Emma","Konrád, Tivadar",
	"Konrád","Csilla","Béla","György","Márk",
	"Ervin","Zita","Valéria","Péter","Katalin, Kitti");
 
$_majus = array
	("","Fülöp","Zsigmond","Tímea","Mónika","Györgyi",
	"Ivett","Gizella","Mihály","Gergely","Ármin",
	"Ferenc","Pongrác","Szervác","Bonifác","Zsófia",
	"Botond, Mózes","Paszkál","Erik","Ivó, Milán",
	"Bernát, Felícia","Konstantin","Júlia, Rita",
	"Dezső","Eszter","Orbán","Fülöp","Hella",
	"Emil, Csanád","Magdolna","Zsanett, Janka",
	"Angéla");
 
$_junius = array
	("","Tünde","Anita, Kármen","Klotild","Bulcsú","Fatime",
	"Norbert","Róbert","Medárd","Félix","Margit",
	"Barnabás","Villő","Antal, Anett","Vazul","Jolán",
	"Jusztin","Laura","Levente","Gyárfás","Rafael",
	"Alajos","Paulina","Zoltán","Iván","Vilmos",
	"János","László","Levente, Irén","Péter, Pál",
	"Pál");
 
$_julius = array
	("","Annamária","Ottó","Kornél","Ulrik","Sarolta, Emese",
	"Csaba","Appolónia","Ellák","Lukrécia","Amália",
	"Nóra, Lili","Izabella","Jenő","&Őrs","Henrik",
	"Valter","Endre, Elek","Frigyes","Emília","Illés",
	"Dániel","Magdolna","Lenke","Kinga, Kincső",
	"Kristóf, Jakab","Anna, Anikó","Olga",
	"Szabolcs","Márta","Judit","Oszkár");
 
$_augusztus = array
	("","Boglárka","Lehel","Hermina","Domonkos","Krisztina",
	"Berta","Ibolya","László","Emőd","Lörinc",
	"Zsuzsanna","Klára","Ipoly","Marcell","Mária",
	"Ábrahám","Jácint","Ilona","Huba","István",
	"Sámuel","Menyhért","Bence","Bertalan","Lajos",
	"Izsó","Gáspár","Ágoston","Beatrix","Rózsa",
	"Erika");
 
$_szeptember = array
	("","Egon","Rebeka","Hilda","Rozália","Viktor, Lőrinc",
	"Zakariás","Regina","Mária","Ádám","Nikolett, Hunor",
	"Teodóra","Mária","Kornél","Szeréna","Enikő",
	"Edit","Zsófia","Diána","Vilhelmina","Friderika",
	"Máté","Móric","Tekla","Gellért","Eufrozina",
	"Jusztina","Adalbert","Vencel","Mihály","Jeromos");
 
$_oktober = array
	("","Malvin","Petra","Helga","Ferenc","Aurél",
	"Renáta","Amália","Koppány","Dénes","Gedeon",
	"Brigitta","Miksa","Kálmán","Helén","Teréz",
	"Gál","Hedvig","Lukács","Nándor","Vendel",
	"Orsolya","Előd","Gyöngyi","Salamon","Bianka",
	"Dömötör","Szabina","Simon","Nárcisz","Alfonz",
	"Farkas");
 
$_november = array
	("","Marianna","Achilles","Győző","Károly","Imre",
	"Lénárd","Rezső","Zsombor","Tivadar","Réka",
	"Márton","Jónás, Renátó","Szilvia","Aliz",
	"Albert, Lipót","Ödön","Hortenzia, Gergő",
	"Jenő","Erzsébet","Jolán","Olivér","Cecília",
	"Kelemen","Emma","Katalin","Virág",
	"Virgil","Stefánia","Taksony","András, Andor");
 
$_december = array
	("","Elza","Melinda","Ferenc","Barbara, Borbála",
	"Vilma","Miklós","Ambrus","Mária","Natália","Judit",
	"Árpád","Gabriella","Luca","Szilárda","Valér",
	"Etelka","Lázár","Auguszta","Viola","Teofil",
	"Tamás","Zéno","Viktória","Ádám, Éva","KARÁCSONY",
	"KARÁCSONY","János","Kamilla","Tamás","Dávid",
	"Szilveszter");
 
# ÚJ TÖMB a névnap tömbökből
$_nevnap = array
	("", $_januar, $_februar, $_marcius, $_aprilis,
	$_majus, $_junius, $_julius, $_augusztus,
	$_szeptember, $_oktober, $_november, $_december);
 
#EREDMÉNYEK:

echo	("Ma ".$_datum[year].". ".$_datum[mon].". ".$_datum[mday].", "
	.$_hetnapja[$_datum[wday]].", "
	.$_nevnap[$_datum[mon]][$_datum[mday]]." napja van.<BR>
	Holnap ".$_nevnap[$_datum[mon]][$_datum[mday]+1].
	" napja lesz.");
Drupal verzió: 
Fórum: 
fox mulder képe

Szerintem a PHP getdate() függvénye nem veszi figyelembe a Drupal időzóna beállítását. Próbálkozz a Drupal format_date() függvényével. Ha nem adod meg a $timezone paramétert:

..., the user's time zone is used.

0
0

Fox Mulder

jason30 képe

Először is Boldog Új Évet Mindenkinek!

(Az előbb elfelejtettem)

Köszi a gyors választ.
Már csak az a bajom, hogy nem értek a programozáshoz, meg a php-hoz sem és nem tudom, hogy hova kellene berakni a format_date() függvényt az én kódomba és milyen paraméterekkel kellene meghívni. Kaphatok ebben egy kis segítséget? Rávezetést?

jason30

0
0
fox mulder képe

Paraméterek: az előző hozzászólásomban lásd a "format_date()" linket
Hová kell betenni: gondoltam, a nyitó hozzászólásban a getdate() helyére. De persze át kéne írnod az egész kódodat, mert a format_date más formátumban adja vissza az időt (tömb helyett string).

De innentől ez már nem Drupal kérdés...

0
0

Fox Mulder

jason30 képe

azért hittem, hogy drupal kérdés, mert egy másik honlapomon felhasználtam egy dátumot és időt kiíró php-t, ahol az tökéletesen jeleníti meg az időt, drupal alatt viszon valamiért 6 órával kevesebbet ír ki:

/*********************************************************************
* Azonosító: 1   --  2006. 02. 16.                                   *
* Azonosító: 2   --  2006. 02. 16. 20 óra 32 perc                    *
* Azonosító: 3   --  2006. 02. 16. 20 óra 32 perc 29 másodperc       *
* Azonosító: 4   --  2006. 02. 16. 20:32                             *
* Azonosító: 5   --  2006. 02. 16. 20:32:29                          *
* Azonosító: 6   --  2006. február 16.                               *
* Azonosító: 7   --  2006. február 16. 20 óra 32 perc                *
* Azonosító: 8   --  2006. február 16. 20 óra 32 perc 29 másodperc   *
* Azonosító: 9   --  2006. február 16. 20:32                         *
* Azonosító: 10  --  2006. február 16. 20:32:29                      *
* ------------------------------------------------------------------ *
* Azonosító: 11  --  2006/02/16                                      *
* Azonosító: 12  --  2006/02/16 20:32                                *
* Azonosító: 13  --  2006/02/16 20:32:29                             *
* Azonosító: 14  --  06/02/16                                        *
* Azonosító: 15  --  06/02/16 20:32                                  *
* Azonosító: 16  --  06/02/16 20:32:29                               *
* ------------------------------------------------------------------ *
* Azonosító: 17  --  02/16/2006                                      *
* Azonosító: 18  --  02/16/2006 20:32                                *
* Azonosító: 19  --  02/16/2006 20:32:29                             *
* Azonosító: 20  --  02/16/06                                        *
* Azonosító: 21  --  02/16/06 20:32                                  *
* Azonosító: 22  --  02/16/06 20:32:29                               *
*********************************************************************/
 
function Date_and_Time($azonosito = 0, $nap = 0)
{
// Dátumadatok megszerzése
$y = date("Y");
$m = date("m");
$f = date("F");
$j = date("j");
$l = date("l");
$h = date("H");
$i = date("i");
$s = date("s");
$y2 = substr($y, 2);
 
// Hónapnév magyarrá alakítása
switch($f)
	{
	case "January":
		$f = "Január";
		break;
	case "February":
		$f = "Február";
		break;
	case "March":
		$f = "Március";
		break;
	case "April":
		$f = "Április";
		break;
	case "May":
		$f = "Május";
		break;
	case "June":
		$f = "Június";
		break;
	case "July":
		$f = "Július";
		break;
	case "August":
		$f = "Augusztus";
		break;
	case "September":
		$f = "Szeptember";
		break;
	case "October":
		$f = "Október";
		break;
	case "November":
		$f = "November";
		break;
	case "December":
		$f = "December";
		break;
	}
 
// Napnév magyarrá alakítása
switch($l)
	{
	case "Monday":
		$l = "Hétfő";
		break;
	case "Tuesday":
		$l = "Kedd";
		break;
	case "Wednesday":
		$l = "Szerda";
		break;
	case "Thursday":
		$l = "Csütörtök";
		break;
	case "Friday":
		$l = "Péntek";
		break;
	case "Saturday":
		$l = "Szombat";
		break;
	case "Sunday":
		$l = "Vasárnap";
		break;
	}
 
// Dátum - és időforma meghatározása azonosító alapján	
switch($azonosito)
	{
	case "1":
		$printer = $y . ". " . $m . ". " . $j . ".";
		break;
	case "2":
		$printer = $y . ". " . $m . ". " . $j . ". " . $h . " óra " . $i . " perc";
		break;
	case "3":
		$printer = $y . ". " . $m . ". " . $j . ". " . $h . " óra " . $i . " perc " . $s . " másodperc";
		break;
	case "4":
		$printer = $y . ". " . $m . ". " . $j . ". " . $h . ":" . $i;
		break;
	case "5":
		$printer = $y . ". " . $m . ". " . $j . ". " . $h . ":" . $i . ":" . $s;
		break;
	case "6":
		$printer = $y . ". " . $f . " " . $j . ".";
		break;
	case "7":
		$printer = $y . ". " . $f . " " . $j . ". " . $h . " óra " . $i . " perc";
		break;
	case "8":
		$printer = $y . ". " . $f . " " . $j . ". " . $h . " óra " . $i . " perc " . $s . " másodperc";
		break;
	case "9":
		$printer = $y . ". " . $f . " " . $j . ". " . $h . ":" . $i;
		break;
	case "10":
		$printer = $y . ". " . $f . " " . $j . ". " . $h . ":" . $i . ":" . $s;
		break;
	case "11":
		$printer = $y . "/" . $m . "/" . $j;
		break;
	case "12":
		$printer = $y . "/" . $m . "/" . $j . " " . $h . ":" . $i;
		break;
	case "13":
		$printer = $y . "/" . $m . "/" . $j . " " . $h . ":" . $i . ":" . $s;
		break;
	case "14":
		$printer = $y2 . "/" . $m . "/" . $j;
		break;
	case "15":
		$printer = $y2 . "/" . $m . "/" . $j . " " . $h . ":" . $i;
		break;
	case "16":
		$printer = $y2 . "/" . $m . "/" . $j . " " . $h . ":" . $i . ":" . $s;
		break;
	case "17":
		$printer = $m . "/" . $j . "/" . $y;
		break;
	case "18":
		$printer = $m . "/" . $j . "/" . $y . " " . $h . ":" . $i;
		break;
	case "19":
		$printer = $m . "/" . $j . "/" . $y . " " . $h . ":" . $i . ":" . $s;
		break;
	case "20":
		$printer = $m . "/" . $j . "/" . $y2;
		break;
	case "21":
		$printer = $m . "/" . $j . "/" . $y2 . " " . $h . ":" . $i;
		break;
	case "22":
		$printer = $m . "/" . $j . "/" . $y2 . " " . $h . ":" . $i . ":" . $s;
		break;
	default:
		$printer = "Az azonosító értékének 1 és 22 közé kell esnie!";
		break;
	}
 
// Napnév hozzáfűzése
if($nap == 1)
	{
	$printer = $l . ", " . $printer;
	}
elseif($nap == 2)
	{
	$printer .= ", " . $l;
	}
print($printer);
}
0
0
pp képe

Doktor John H. Watson régóta ismerte és tisztelte barátja éleslátását, csodálta pengeéles agyának logikai képességeit, de most úgy érezte tévedett. Összeszedte minden bátorságát és megszólalt:
- Sherlock, ez nem Drupal kérdés lesz! Miért is lenne, hisz a getdate egy beépített PHP függvény, aminek semmi köze nincs a Drupalhoz! Nem lehet, hogy másik szerveren vannak a dolgok és az okozza a problémát?
- Watson, maga egy zseni! - kiáltott fel Holmes - akkor más megoldást kell keresnünk!
Holmes leült hát legendás foteljébe és a helyett, hogy pipájára gyújtott volna és hátradőlve elmélkedett volna a kérdésen felnyitotta apró netbookját és rákeresett a probléma megoldására az interneten. Nemsokára talált is egy névnap rss-t, melynek megfelelően felparaméterezett csatornáját felvette az aggregator modul egy új csatornájába. Ezután kirakta az így létrejött blokkot a megfelelő helyre.

- pp -

0
0
fox mulder képe

:)

0
0

Fox Mulder

jason30 képe

Szeretném megköszönni, hogy rávilágítottál arra, hogy tényleg a másik tárhelyszolgáltató miatt volt gondom és hogy adtál egy lehetséges megoldást.
Elnézést a hozzá nem értésemért.

jason30

0
0