[SPIP] +2.1.12
[velocampus/web/www.git] / www / plugins / auto / verifier / normaliser / datepicker.php
1 <?php
2
3 // Sécurité
4 if (!defined("_ECRIRE_INC_VERSION")) return;
5
6 /**
7 * Convertir une date vers un type de format
8 */
9 function normaliser_datepicker_dist($valeur, $options=array(), &$erreur) {
10
11 if (!isset($options['format'])) {
12 $erreur = "Pas de format de date transmis pour normalisation.";
13 return;
14 }
15
16 $format = $options['format'];
17 $normaliser = charger_fonction('datepicker_'.$format, 'normaliser', true);
18
19 if (!$normaliser) {
20 $erreur = "Pas de normalisation trouvee pour 'date' vers '$format'";
21 return;
22 }
23
24 return $normaliser($valeur, $options, $erreur);
25 }
26
27
28 /**
29 * Convertir une date en datetime
30 *
31 **/
32 function normaliser_datepicker_datetime_dist($valeur, $options, &$erreur) {
33 $defaut = '0000-00-00 00:00:00';
34
35 if (!$valeur) {
36 return $defaut;
37 }
38
39 $date = $valeur;
40 if (isset($options['heure'])) {
41 $date .= (' ' . $options['heure'] . ':00');
42 } else {
43 $date .= ' 00:00:00';
44 }
45
46 include_spip('inc/filtres');
47 if (!$date = recup_date($date)) {
48 $erreur = "Impossible d'extraire la date de $date";
49 return;
50 }
51
52 if (!($date = mktime($date[3], $date[4], 0, (int)$date[1], (int)$date[2], (int)$date[0]))) {
53 // mauvais format de date
54 $erreur = "Impossible de normaliser la date...";
55 return false;
56 }
57
58 $date = date("Y-m-d H:i:s", $date);
59 $date = vider_date($date); // enlever les valeurs considerees comme nulles (1 1 1970, etc...)
60 if (!$date) {
61 $date = $defaut;
62 }
63 return $date;
64 }