1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| <?php
function date2timestamp($date) {
if (preg_match('~^(\d{2})([-/])(\d{2})\2(\d{4})$~', $date, $m) && checkdate($m[3], $m[1], $m[4])) {
return mktime(0, 0, 0, $m[3], $m[1], $m[4]);
} else if (preg_match('~^(\d{4})([-/])(\d{2})\2(\d{2})$~', $date, $m) && checkdate($m[3], $m[4], $m[1])) {
return mktime(0, 0, 0, $m[3], $m[4], $m[1]);
} else {
die("Problème sur une date : $date");
}
}
function lister_dates($deb, $fin) {
$tDeb = date2timestamp($deb);
$tFin = date2timestamp($fin);
$res = array();
while ($tDeb < $tFin) {
$tDeb += 86400;
if (date('N', $tDeb) < 6) { /* Requiert PHP 5.1.0 ou + */
array_push($res, date('d/m/Y', $tDeb));
}
}
return $res;
}
header('Content-type: text/plain');
$sxml = simplexml_load_file('tasks.xml');
foreach ($sxml->task as $t) {
print_r(lister_dates($t->start, date('d/m/Y'))); /* On peut éventuellement optimiser sur le deuxième paramètre puisqu'il correspond à la date actuelle ... */
} |
Partager