source: spip-zone/_plugins_/datelib/datelib_fonctions.php @ 111225

Last change on this file since 111225 was 111225, checked in by devmutu@…, 2 years ago

Initialisation datelib : librairie de fonction pour gérer les dates

File size: 3.6 KB
Line 
1<?php
2
3if (!defined("_ECRIRE_INC_VERSION")) return;
4
5
6/**
7*
8*/
9function affdate_eval_diff($date, &$diff, &$computed){
10        $now = date("U");
11        // a day is
12        $oneday = 3600 * 24;
13        // reconstructing a 'clean' date from what's in the database
14        $test_date = preg_match_all(",[0-9]*,",$date,$matches);
15        $Y = $matches[0][0];
16        $M = $matches[0][2];
17        $D = $matches[0][4];
18        $computed = date("U", mktime(0,0,0,$M,$D,$Y) );
19
20        // $diff is the number of days between $now and $computed
21        $diff =  floor(($now-$computed)/$oneday);
22
23}
24
25
26/**
27 * datelib_fuzzy
28 * donne des dates plus sympas par exemple dans les forums
29 * @return $date formatée sous forme de date plus ou moins floue
30 * @param $date Object
31 * marche bien sur http://www.nota-bene.org/ :)
32 */
33function affdate_fuzzy($date) {
34        if($date!='') {
35
36                affdate_eval_diff($date,$diff,$computed);
37
38                // conditionally setting $date
39                if($diff < 1) { // then it's today
40                        $date = _T('datelib:fuzzy_today');
41                } else if($diff < 2) { // then it's yesterday
42                        $date = _T('datelib:fuzzy_yesterday');
43                } else if($diff < 7) { // then it's last {weekday}
44                        $date = _T('datelib:fuzzy_last_w' . date("w",$computed) );
45                } else { // too old: resorting to classical affdate display
46                        $date = affdate($date);
47                }
48        }
49        return $date;
50}
51
52
53/**
54 * affdate_progressive
55 * formate la date selon les pratques en usage dans la presse
56 * @return $date formatée sous forme de date plus ou moins floue
57 * @param $date Object
58 */
59function affdate_progressive($date) {
60        if($date!='') {
61
62                affdate_eval_diff($date,$diff,$computed);
63
64                // conditionally setting $date
65                if($diff < 1) {
66                        $date = _T('datelib:fuzzy_today') . " &agrave; ". heures($date)."h".minutes($date);
67                } else if($diff < 2) {
68                        $date = _T('datelib:fuzzy_yesterday') . " &agrave; ". heures($date)." h";
69                } else if($diff < 8) {
70                        $date = _T(nom_jour($date). " &agrave; ". heures($date)." h");
71                } else if($diff < 30){
72                        $date = nom_jour($date)." ".jour($date)." ".nom_mois($date);
73                }  else if($diff < 365){
74                        $date = "le ". jour($date)." ".nom_mois($date);
75                }
76                else {
77                        $date = "le ". affdate($date);
78                }
79        }
80        return $date;
81}
82
83/**
84 * affdate_majs
85 * formate la date selon les pratques en usage dans la presse
86 * @return $date formatée sous forme de date plus ou moins floue
87 * @param $date Object
88 */
89function affdate_majs($date) {
90        if($date!='') {
91
92                affdate_eval_diff($date,$diff,$computed);
93
94                // conditionally setting $date
95                if($diff < 1) {
96                        $date = heures($date)."h".minutes($date) . ", ". _T('datelib:fuzzy_today');
97                } else if($diff < 2) {
98                        $date = heures($date)." h, ". _T('datelib:fuzzy_yesterday');
99                } else if($diff < 8) {
100                        $date = heures($date)." h, ". nom_jour($date);
101                } else if($diff < 30){
102                        $date = nom_jour($date)." ".jour($date)." ".nom_mois($date);
103                }  else if($diff < 365){
104                        $date = jour($date)." ".nom_mois($date);
105                }
106                else {
107                        $date = "le ". affdate($date);
108                }
109        }
110        return $date;
111}
112
113/**
114 * affdate_progressive_court
115 * formate la date selon les pratques en usage dans la presse
116 * @return $date formatée sous forme de date plus ou moins floue
117 * @param $date Object
118 */
119function affdate_progressive_court($date) {
120        if($date!='') {
121
122                affdate_eval_diff($date,$diff,$computed);
123
124                // conditionally setting $date
125                if($diff < 1) {
126                        $date = heures($date)."h".minutes($date);
127                } else if($diff < 2) {
128                        $date = _T('datelib:fuzzy_yesterday') . " &agrave; ". heures($date)." h";
129                } else if($diff < 8) {
130                        $date = _T(nom_jour($date));
131                } else if($diff < 30){
132                        return date("d/m", strtotime($date));
133                } else if($diff < 365){
134                                return date("d/m", strtotime($date));
135                }       else {
136                        return date("d/m/y", strtotime($date));
137                }
138        }
139        return $date;
140}
141
142?>
Note: See TracBrowser for help on using the repository browser.