Kom ihåg mig?
Home Menu

Menu


strtotime() fast med svenskt datum [php]

Ämnesverktyg Visningsalternativ
Oläst 2010-07-04, 11:36 #1
radioaktivitet radioaktivitet är inte uppkopplad
Flitig postare
 
Reg.datum: Jun 2006
Inlägg: 336
radioaktivitet radioaktivitet är inte uppkopplad
Flitig postare
 
Reg.datum: Jun 2006
Inlägg: 336
Standard strtotime() fast med svenskt datum [php]

Hur kan jag konvertera datum som ser ut så här "11 okt 2010 09:26" och "10 juni 2010 05:25" till en unix timestamp? strtotime() fungerar bara med engelska datum. Finns något knep att ta till här?
radioaktivitet är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-07-04, 12:38 #2
nosnaj nosnaj är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Mar 2005
Inlägg: 1 012
nosnaj nosnaj är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Mar 2005
Inlägg: 1 012
Utan att kolla om det finns någon annan funktion så känns det ju dock väldigt trivialt att byta månadsnamnet till engelska så är du klar. Månaden står alltid efter första mellanslaget.
nosnaj är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-07-04, 12:44 #3
najks avatar
najk najk är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Oct 2005
Inlägg: 1 224
najk najk är inte uppkopplad
Har WN som tidsfördriv
najks avatar
 
Reg.datum: Oct 2005
Inlägg: 1 224
setlocale(LC_ALL, "sv_SE.UTF-8");
sen skriver php datum på svenska

sorry, missuppfattade frågan, håller med nosnaj istället

Senast redigerad av najk den 2010-07-04 klockan 12:45 Anledning: /me stupid
najk är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-07-04, 12:47 #4
radioaktivitet radioaktivitet är inte uppkopplad
Flitig postare
 
Reg.datum: Jun 2006
Inlägg: 336
radioaktivitet radioaktivitet är inte uppkopplad
Flitig postare
 
Reg.datum: Jun 2006
Inlägg: 336
Citat:
Ursprungligen postat av nosnaj Visa inlägg
Utan att kolla om det finns någon annan funktion så känns det ju dock väldigt trivialt att byta månadsnamnet till engelska så är du klar. Månaden står alltid efter första mellanslaget.
Uppfinna hjulet på nytt... Hmm... Det måste ju finnas någon som redan gjort detta? Inte bara bekvämast, utan kodar jag från början finns ju även risk att jag kodar fel.
radioaktivitet är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-07-04, 13:09 #5
nosnaj nosnaj är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Mar 2005
Inlägg: 1 012
nosnaj nosnaj är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Mar 2005
Inlägg: 1 012
Citat:
Ursprungligen postat av radioaktivitet Visa inlägg
Uppfinna hjulet på nytt... Hmm... Det måste ju finnas någon som redan gjort detta? Inte bara bekvämast, utan kodar jag från början finns ju även risk att jag kodar fel.
Håller med om hjulet men att lyckas göra fel när man byter ut 12 olika strängar får nog anses som en överdriven risk
Hittar någon bättre sätt, så posta här, bra för oss andra också att veta.
nosnaj är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-07-04, 14:11 #6
Ristorasto Ristorasto är inte uppkopplad
Medlem
 
Reg.datum: Mar 2006
Inlägg: 90
Ristorasto Ristorasto är inte uppkopplad
Medlem
 
Reg.datum: Mar 2006
Inlägg: 90
Har en gammal funktion här liggandes som gör det du är ute efter. Bygger iofs precis på samma princip som ovan har tagit upp, men den kanske kan vara till användning ändå (tar inte ansvar för felaktigheter ):

Kod:
/**
 * Returns a string where the monthnames and weekdays has
 * been replaced by a English representation
 * (useful when working with date and time parsing).
 * 
 * Checking for Swedish locale words
 *
 * @param string $input
 * @return string
 */
function localize_string($input)
{
	$input = strtolower($input);
		
	$wd = array('onsdag,ons,on' => 'wed',
				'måndag,mån,må' => 'mon',
				'tisdag,tis,ti' => 'tue',
				'torsdag,tor,to' => 'thu',
				'fr,fre,fredag' => 'fri',
				'lördag,lör,lö' => 'sat',
				'söndag,sön,sö' => 'sun');
				
	$mo = array('januari,jan' => 'jan',
				'februari,feb' => 'feb',
				'mars,mar' => 'mar',
				'april,apr' => 'apr',
				'maj' => 'may',
				'juni,jun' => 'jun',
				'juli,jul' => 'jul',
				'augusti,aug' => 'aug',
				'september,sept,sep' => 'sep',
				'oktober,okt' => 'oct',
				'november,nov' => 'nov',
				'december,dec' => 'dec');
				
	foreach ($mo as $swe => $eng)
		foreach(explode(',', $swe) as $sw)
			$input = preg_replace('/\b'.$sw.'\b/', $eng, $input);
		
	foreach ($wd as $swe => $eng)
		foreach(explode(',', $swe) as $sw)
			$input = preg_replace('/\b'.$sw.'\b/', $eng, $input);
				
	return $input;
}
Lycka till!
Ristorasto är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-07-04, 14:35 #7
tartareandesire tartareandesire är inte uppkopplad
Supermoderator
 
Reg.datum: Jan 2004
Inlägg: 11 585
tartareandesire tartareandesire är inte uppkopplad
Supermoderator
 
Reg.datum: Jan 2004
Inlägg: 11 585
Citat:
Ursprungligen postat av radioaktivitet Visa inlägg
Uppfinna hjulet på nytt... Hmm... Det måste ju finnas någon som redan gjort detta? Inte bara bekvämast, utan kodar jag från början finns ju även risk att jag kodar fel.
Det är så pass simpelt att du knappast lär göra fel Även om du skulle göra fel så använder du lämpligtvis en funktion och då behöver du ändå bara ändra på ETT ställe.
__________________
Full-stack developer, free for smaller assignments
tartareandesire är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-07-05, 21:32 #8
Clarence Clarence är inte uppkopplad
Administratör
 
Reg.datum: Jan 2003
Inlägg: 1 974
Clarence Clarence är inte uppkopplad
Administratör
 
Reg.datum: Jan 2003
Inlägg: 1 974
Det finns en smidig funktion för detta:
PHP-kod:
$date '11 okt 2010 09:26';
$format '%d %b %Y %R';
setlocale(LC_ALL"sv_SE.UTF-8");
print_r(strptime($date$format)); 
Med juli som månadsförkortning lär du nog stöta på patrull dock.
Clarence är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-07-07, 10:14 #9
martines avatar
martine martine är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Mar 2005
Inlägg: 767
martine martine är inte uppkopplad
Mycket flitig postare
martines avatar
 
Reg.datum: Mar 2005
Inlägg: 767
Man kan ju tillägga, även om det inte hjälper i ditt fall, att MySQL är mycket bra på att hantera datum och teckenkodningar och ofta gör detta mycket smidigare än php.
martine är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-07-07, 23:03 #10
taz76 taz76 är inte uppkopplad
Flitig postare
 
Reg.datum: Jan 2008
Inlägg: 388
taz76 taz76 är inte uppkopplad
Flitig postare
 
Reg.datum: Jan 2008
Inlägg: 388
Jag kan rek att ställa in tidszon också - speciellt om servern inte står i sverige. date_default_timezone_set funkar finfint för det
taz76 är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 15:51.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017