Ce que je veux faire est de faire un script sur le serveur lire un fichier texte, le trier, puis le sortir dans un objet javascript (probablement via JSON). Le fichier texte en question ressemble à ceci:Comment devrais-je stocker une date en PHP pour une utilisation avec javascript?
13/09/2009,17/09/2009,Arbitrary dates 14/09/2009,18/09/2009,Some random comment 14/09/2010,18/12/2010,A comment to the dates 14/09/2010,18/09/2010,A subset of another date 14/09/2001,18/09/2002,The oldest date
Le php pour gérer la filereading ressemble à ceci:
function loadDates()
{
$dateFile = fopen("dates.txt", "rt");
$dates = array();
if($dateFile)
{
flock($dateFile,LOCK_SH);
$i = 0;
while(!feof($dateFile))
{
$text = fgets($dateFile);
if($text !== FALSE)
{
$i++;
$arr = explode(",",$text,3);
//actual storage
$dates[$i]['start'] = strtotime($arr[0]);
$dates[$i]['end'] = strtotime($arr[1]);
$dates[$i]['comment'] = $arr[2];
}
}
fclose($dateFile);
//sort by start date, then by end date
foreach($dates as $key => $item)
{
$start[$key] = $item['start'];
$end[$key] = $item['end'];
}
array_multisort($start, SORT_ASC, $end, SORT_ASC, $dates);
return $dates;
}
else
{
return FALSE;
}
}
Cependant, qui stocke unix timesstamps dans les dates de début et de fin. J'utiliserais la classe DateTime
, mais je suis actuellement limité à PHP 4.4. Idéalement, je voudrais enregistrer les dates dans un format:
- Peut-on comparer numériquement
- sont lisibles humain (permettant l'édition humaine de
dates.txt
) - correctement formatés (c.-à « 01-01 -1900" est converti en « 01/01/1900 »)
- peut être converti en un javascript objet date
Comment pourrais-je aller sur le stockage des dates afin qu'ils satify ces restrictions?
Vous avez oublié de multiplier/diviser par 1000. –
vous » re droit. fixé. –