Falleg útsetning á dagsetningum
Skrifađ af Maggi Trymbill ţann 13. desember 2006 - 16:44
Fjöldi lestra: 1399Mig langađi til ţess ađ getađ, međ function, fengiđ fallega útfćrslu á dagsetningu fyrir t.d. blogg, álit, gestabók eđa slíkt. Ég vildi hafa functionina bćđi á íslensku og ensku, vildi láta hana skrifa út "Í dag", "Í gćr", "Í fyrradag" ef ađ svo átti viđ. Einnig vildi ég getađ notađ ţessa function án vandrćđa međ ţví ađ skrifa bara formatiđ á dagsetningunni sem fer inn í functioniđ, bjó til 3 mismunandi leiđir fyrir output (einföld, falleg og falleg međ klukku).
1 | | |
Maggi, ég stytti ţađ ađeins. Ađ vísu er ekki hćgt ađ velja hvernig formatti dagsetningin er á, en hćgt er ađ nota enska formattiđ (YYYY-MM-DD HH:ii).
<?php
function datetodate( $input, $output = 1 )
{
$dag = array( 'sunnudagur', 'mánudagur', 'ţriđjudagur', 'miđvikudagur', 'fimmtudagur', 'föstudagur', 'laugardagur' );
$man = array( '', 'janúar', 'febrúar', 'mars', 'apríl', 'maí', 'júní', 'júlí', 'ágúst', 'september', 'október', 'nóvember', 'desember' );
$date = strtotime( $input );
$dagur = $dag[date( 'w', $date )];
$manudur = $man[date( 'n', $date )];
if( date( 'Ymd', $date ) == date( 'Ymd' ) )
$nytt = ' í dag';
elseif( date( 'Ymd', $date ) == date( 'Ymd', strtotime( '-1 day' ) ) )
$nytt = ' í gćr';
elseif( date( 'Ymd', $date ) == date( 'Ymd', strtotime( '-2 day' ) ) )
$nytt = ' í fyrradag';
else
$output = 1;
if( $output == 1 )
{
$_date = date( 'd', $date ) . '. ' . $manudur . ' ' . date( 'Y', $date ) . ' kl: ' . date( 'H:i', $date );
}
elseif( $output == 2 )
{
$_date = $nytt;
}
elseif( $output == 3 )
{
$_date = $nytt . ' kl ' . date( 'H:i', $date );
}
return 'Skrifađ ' . $_date;
}
# Dćmi
echo datetodate( '2006-12-24 17:54', 1 );
# Útkoma: Skrifađ 24. desember 2006 kl: 18:04
?>
Sammála ađ ţađ ţarf ađ stytta ţetta ađeins
Góđ útfćrsla hjá ţér!
Ţú sérđ líka hvenćr ég skrifađi ţetta. Spáđu í gaur sem hefur EKKERT ađ gera á ađfangadag.
Haha 
Hć, ég ţurfti ađ breita mysql dagsettningu í fallega útsetningu. Fattađi ekki ađ kíkja hér, en ćtlađi ađ deila function-inu međ ykkur sem ég gerđi. Hún er eiginlega ćtluđ bloggi en ţó nothćf allstađar.
<?php
/**
* @author BirkirR
* @copyright 2007
* @scriptname Dagsettning v1.0
*/
function dagsettning($dags,$datekodi=1,$endi=1){
switch($endi){
case 1: $endi = 'dagur'; break; // Dćmi: Mánudagur
case 2: $endi = 'dag'; break; // Dćmi: Mánudag
case 3: $endi = 'degi'; break; // Dćmi: Mánudegi
case 4: $endi = 'dags'; break; // Dćmi: Mánudags
case 5: $endi = 'dagurinn'; break; // Dćmi: Mánudagurinn
case 6: $endi = 'daginn'; break; // Dćmi: Mánudaginn
case 7: $endi = 'deginum'; break; // Dćmi: Mánudeginum
case 8: $endi = 'dagsins'; break; // Dćmi: Mánudagsins
default: $endi = $endi;
}
switch($datekodi){
case 1: $datekodi = 'l j. F Y k\l\ukk\a\n H:i'; break; // Dćmi: Mánu($end) 1. Janúar 2008 klukkan 11:30
case 2: $datekodi = 'd/m/y H:i:s'; break; // Dćmi: 01/01/08 11:30:00
default: $datekodi = $datekodi;
}
$dagsettning = date($datekodi,strtotime($dags)); // Fćrum MySQL dagsettningu í fallegt enskt form
$man = array(
'January' => 'Janúar',
'February' => 'Febrúar',
'March' => 'Mars',
'December' => 'Desember'
);
foreach($man as $en => $is){
$dagsettning = str_replace($en,$is,$dagsettning); // Fćrum dagsettningu úr enskum mánuđum í íslenska
}
$dag = array(
'Mon' => 'Mánu',
'Tues' => 'Ţriđju',
'Wednes' => 'Miđviku',
'Thirs' => 'Fimmtu',
'Fri' => 'Föstu',
'Satur' => 'Laugar',
'Sun' => 'Sunnu'
);
foreach($dag as $en => $is){
$dagsettning = str_replace($en.'day',$is.$endi,$dagsettning); // Breiti dagsettningu úr enskum dag í íslenskann
}
return $dagsettning;
}
echo dagsettning('2007-12-05 14:16:12',1,5);
?>
Smá update á kóđanum, version 1.2
Changelog:
# Hćgt ađ velja CleanDate sem er 'Skrifađ í gćr'... og svo ekki.
# Gleymdi ađ klára mánuđina
# Nú kemur 'skrifađ síđasta laugardag'...
Nú er ég hćttur :$
Changelog:
# Hćgt ađ velja CleanDate sem er 'Skrifađ í gćr'... og svo ekki.
# Gleymdi ađ klára mánuđina
# Nú kemur 'skrifađ síđasta laugardag'...
<?php
/**
* @author BirkirR
* @copyright 2007
* @scriptname Dagsettning v1.1
*/
function dagsettning($dags,$datekodi=1,$endi=1,$nice=FALSE){
switch($endi){
case 1: $endi = 'dagur'; break; // Dćmi: Mánudagur
case 2: $endi = 'dag'; break; // Dćmi: Mánudag
case 3: $endi = 'degi'; break; // Dćmi: Mánudegi
case 4: $endi = 'dags'; break; // Dćmi: Mánudags
case 5: $endi = 'dagurinn'; break; // Dćmi: Mánudagurinn
case 6: $endi = 'daginn'; break; // Dćmi: Mánudaginn
case 7: $endi = 'deginum'; break; // Dćmi: Mánudeginum
case 8: $endi = 'dagsins'; break; // Dćmi: Mánudagsins
default: $endi = $endi;
}
switch($datekodi){
case 1: $datekodi = 'l j. F Y k\l\ukk\a\n H:i'; break; // Dćmi: Mánu($end) 1. Janúar 2008 klukkan 11:30
case 2: $datekodi = 'd/m/y H:i:s'; break; // Dćmi: 01/01/08 11:30:00
default: $datekodi = $datekodi;
}
$nicedag = array(
'now' => 'í dag',
'-1 day' => 'í gćr',
'-2 day' => 'í fyrradag',
'last Monday' => 'síđasta Mánudag',
'last Tuesday' => 'síđasta Ţriđjudag',
'last Wednesday' => 'síđasta Miđvikudag',
'last Thursday' => 'síđasta Fimmtudag',
'last Friday' => 'síđasta Föstudag',
'last Saturday' => 'síđasta Laugardag',
'last Sunday' => 'síđasta Sunnudag'
);
if($nice != FALSE){ // Ef NiceDate
foreach($nicedag as $str => $output){
if(date('Y-m-d',strtotime($str))==date('Y-m-d',strtotime($dags))){
$dagsettning = $nice.' '.$output;
}
}
if(strlen($dagsettning) < 10){
$dagsettning = $nice.' '.date($datekodi,strtotime($dags));
}
}else{
$dagsettning = date($datekodi,strtotime($dags)); // Fćrum MySQL dagsettningu í fallegt enskt form
}
$man = array(
'January' => 'Janúar',
'February' => 'Febrúar',
'March' => 'Mars',
'April' => 'Apríl',
'May' => 'Maí',
'June' => 'Júní',
'July' => 'Júlí',
'August' => 'Ágúst',
'October' => 'Október',
'December' => 'Desember'
);
foreach($man as $en => $is){
$dagsettning = str_replace($en,$is,$dagsettning); // Fćrum dagsettningu úr enskum mánuđum í íslenska
}
$dag = array(
'Mon' => 'Mánu',
'Tues' => 'Ţriđju',
'Wednes' => 'Miđviku',
'Thurs' => 'Fimmtu',
'Fri' => 'Föstu',
'Satur' => 'Laugar',
'Sun' => 'Sunnu'
);
foreach($dag as $en => $is){
$dagsettning = str_replace($en.'day',$is.$endi,$dagsettning); // Breiti dagsettningu úr enskum dag í íslenskann
}
return $dagsettning;
}
echo dagsettning(date('Y-m-d H:i:s'),2,1).'<br><br>';
echo dagsettning('2007-04-03 00:00:00',1,5).'<br>';
echo dagsettning('2007-12-08 00:00:00',1,6,'Skrifađ').'<br>';
echo dagsettning('2007-04-03 00:00:00',1,5,'Búiđ til');
/**
08/12/07 12:48:54
Ţriđjudagurinn 3. Apríl 2007 klukkan 00:00
Skrifađ í dag
Búiđ til Ţriđjudagurinn 3. Apríl 2007 klukkan 00:00
**/
?>
Nú er ég hćttur :$
Flottur, Birkir. 
Er svona lítiđ ađ gera í Eyjum ;P Hehe...


8 athugasemdir skrifađar -