Got questions, comments, patches, etc.?
Contact Jason Woofenden
gitweb
/
wfpl.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
metaform: new input type=email, type=search
[wfpl.git]
/
time.php
diff --git
a/time.php
b/time.php
index
4c6b1f1
..
3c42f79
100644
(file)
--- a/
time.php
+++ b/
time.php
@@
-18,6
+18,7
@@
# This file contains functions to manipulate/calculate dates/times
# This file contains functions to manipulate/calculate dates/times
+# FIXME make it so you can call this with a string YYYY-MM-DD
function ymd_to_days($year, $month, $day) {
return (int)(mktime(12,0,0,$month,$day, $year, 0) / 86400);
}
function ymd_to_days($year, $month, $day) {
return (int)(mktime(12,0,0,$month,$day, $year, 0) / 86400);
}
@@
-62,16
+63,19
@@
function clean_ymd($year, $month, $day) {
}
if($day < 1) {
$day = 1;
}
if($day < 1) {
$day = 1;
- } elseif($day > 31) {
- # FIXME this should check the month
- $day = 31;
+ } else {
+ $max = date('t', mktime(12, 0, 0, $month, 1, $year));
+ if($day > $max) {
+ $day = $max;
+ }
}
return array($year, $month, $day);
}
}
return array($year, $month, $day);
}
-# convert date string from mm/dd/yyyy to yyyy-mm-dd
-function mdy_to_ymd($date) {
+# pass date like 3/21/99
+# returns array(year, month, day)
+function mdy_clean($date) {
$date = ereg_replace('[^0-9/-]', '', $date);
$date = ereg_replace('-', '/', $date);
$parts = explode('/', $date);
$date = ereg_replace('[^0-9/-]', '', $date);
$date = ereg_replace('-', '/', $date);
$parts = explode('/', $date);
@@
-92,20
+96,25
@@
function mdy_to_ymd($date) {
list($month, $day, $year) = $parts;
}
list($month, $day, $year) = $parts;
}
- list($year, $month, $day) = clean_ymd($year, $month, $day);
+ return clean_ymd($year, $month, $day);
+}
+# convert date string from mm/dd/yyyy to yyyy-mm-dd
+function mdy_to_ymd($date) {
+ list($year, $month, $day) = mdy_clean($date);
return sprintf('%04u-%02u-%02u', $year, $month, $day);
}
return sprintf('%04u-%02u-%02u', $year, $month, $day);
}
-# convert date string from yyy-mm-dd to mm/dd/yyyy
-function ymd_to_mdy($date) {
+# pass date like 2008-11-21
+# returns array(year, month, day)
+function ymd_clean($date) {
$date = ereg_replace('[^0-9/-]', '', $date);
$date = ereg_replace('/', '-', $date);
$parts = explode('-', $date);
switch(count($parts)) {
case 1:
$year = $parts[0];
$date = ereg_replace('[^0-9/-]', '', $date);
$date = ereg_replace('/', '-', $date);
$parts = explode('-', $date);
switch(count($parts)) {
case 1:
$year = $parts[0];
- if(strlen($year) == 0) {
+ if(strlen($year) == 0 || $year < 1971 || $year > 2050) {
list($year, $month, $day) = explode('-', date('Y-m-d'));
} else {
list($month, $day) = explode('-', date('m-d'));
list($year, $month, $day) = explode('-', date('Y-m-d'));
} else {
list($month, $day) = explode('-', date('m-d'));
@@
-119,13
+128,11
@@
function ymd_to_mdy($date) {
list($year, $month, $day) = $parts;
}
list($year, $month, $day) = $parts;
}
- list($year, $month, $day) = clean_ymd($year, $month, $day);
-
- return sprintf('%02u/%02u/%04u', $month, $day, $year);
+ return clean_ymd($year, $month, $day);
}
}
-function enc_mdy($date) {
- return ymd_to_mdy($date);
+# convert date string from yyyy-mm-dd to mm/dd/yyyy
+function ymd_to_mdy($str) {
+ list($year, $month, $day) = ymd_clean($str);
+ return sprintf('%02u/%02u/%04u', $month, $day, $year);
}
}
-
-?>