|
| Konvertering af dato og tid Fra : Jes Søndergaard |
Dato : 15-02-01 21:39 |
|
Jeg modtager dato og tid i følgende format:
Thu, 15 Feb 2001 13:30:46 +0100
og ønsker at konvertere det til følgende format:
15.02.01 13.30 (betyder +0100 at det bliver 14.30?)
Hvordan løser jeg denne konvertering mest elegant?
Kan jeg drage nytte af nogle af dato- og tidsfunktionerne eller er substr()
simpelthen løsningen?
Mvh.
Jes Søndergaard
| |
Anders Johannsen (15-02-2001)
| Kommentar Fra : Anders Johannsen |
Dato : 15-02-01 22:54 |
|
> Kan jeg drage nytte af nogle af dato- og tidsfunktionerne eller er
substr()
> simpelthen løsningen?
1) Brug et regulært udtryk eller substr() til at hive de enkelte værdier ud
2) Brug mktime til at skabe et timstamp
3) Brug date() eller strftime() til at formatere datoen som du lyster
F.eks.
<?php
function date2timestamp($strDate) {
preg_match("/([0-9]{2}) ([a-z]{3}) ([0-9]{4})
([0-9]{2}):([0-9]{2}):([0-9]{2})/i", $strDate, $regs);
$arrMonths = array ("Jan" => 1,
"Feb" => 2,
"Mar" => 3,
"Apr" => 4,
"Mai" => 5,
"Jun" => 6,
"Jul" => 7,
"Aug" => 8,
"Sep" => 9,
"Oct" => 10,
"Nov" => 11,
"Dec" => 12
);
return mktime($regs[4], $regs[5], $regs[6], $arrMonths[$regs[2]],
$regs[1], $regs[3]);
}
$strDate = "Thu, 15 Feb 2001 13:30:46 +0100";
$daDate = date2timestamp($strDate);
echo strftime("%d.%m.%y %R", $daDate);
?>
/A
| |
Bo Meyer (16-02-2001)
| Kommentar Fra : Bo Meyer |
Dato : 16-02-01 11:20 |
|
> Jeg modtager dato og tid i følgende format:
> Thu, 15 Feb 2001 13:30:46 +0100
>
> og ønsker at konvertere det til følgende format:
> 15.02.01 13.30 (betyder +0100 at det bliver 14.30?)
>
> Hvordan løser jeg denne konvertering mest elegant?
fil = s2t.php:
<?
$streng = "Thu, 15 Feb 2001 13:30:46 +0100";
$dato = strtotime($streng);
echo strftime("%d.%m.%y %H.%M", $dato), "\n";
?>
php -q s2t.php
15.02.01 13.30
--
Bo Meyer
| |
Jes Søndergaard (16-02-2001)
| Kommentar Fra : Jes Søndergaard |
Dato : 16-02-01 12:47 |
|
"Bo Meyer" <bmeyer@relief.dk> skrev bl.a.:
> $streng = "Thu, 15 Feb 2001 13:30:46 +0100";
> $dato = strtotime($streng);
> echo strftime("%d.%m.%y %H.%M", $dato), "\n";
Hehe, noget mere enkel løsning end Anders' eksempel.
Om strtotime() står der "Parse about any english textual datetime
description into a UNIX timestamp". Det vil altså sige at man kan smide
næsten alle mulige dato- og tidsformater ind i funktionen?
- Genial funktion
Mvh.
Jes Søndergaard
| |
Anders Johannsen (16-02-2001)
| Kommentar Fra : Anders Johannsen |
Dato : 16-02-01 17:58 |
|
> Hehe, noget mere enkel løsning end Anders' eksempel.
Man skal aldrig springe over hvor gærdet er lavest...
/A
| |
|
|