493 |
ddelon |
1 |
<?php
|
|
|
2 |
/**
|
|
|
3 |
* Description: shows how to perform validation with PEAR::Calendar
|
|
|
4 |
*/
|
|
|
5 |
function getmicrotime(){
|
|
|
6 |
list($usec, $sec) = explode(' ', microtime());
|
|
|
7 |
return ((float)$usec + (float)$sec);
|
|
|
8 |
}
|
|
|
9 |
$start = getmicrotime();
|
|
|
10 |
|
|
|
11 |
if ( !@include 'Calendar/Calendar.php' ) {
|
|
|
12 |
define('CALENDAR_ROOT', '../../');
|
|
|
13 |
}
|
|
|
14 |
require_once CALENDAR_ROOT.'Second.php';
|
|
|
15 |
|
|
|
16 |
if (!isset($_GET['y'])) $_GET['y'] = date('Y');
|
|
|
17 |
if (!isset($_GET['m'])) $_GET['m'] = date('n');
|
|
|
18 |
if (!isset($_GET['d'])) $_GET['d'] = date('j');
|
|
|
19 |
if (!isset($_GET['h'])) $_GET['h'] = date('H');
|
|
|
20 |
if (!isset($_GET['i'])) $_GET['i'] = date('i');
|
|
|
21 |
if (!isset($_GET['s'])) $_GET['s'] = date('s');
|
|
|
22 |
|
|
|
23 |
$Unit = & new Calendar_Second($_GET['y'], $_GET['m'], $_GET['d'], $_GET['h'], $_GET['i'], $_GET['s']);
|
|
|
24 |
|
|
|
25 |
echo '<p><b>Result:</b> '.$Unit->thisYear().'-'.$Unit->thisMonth().'-'.$Unit->thisDay().
|
|
|
26 |
' '.$Unit->thisHour().':'.$Unit->thisMinute().':'.$Unit->thisSecond();
|
|
|
27 |
if ($Unit->isValid()) {
|
|
|
28 |
echo ' is valid!</p>';
|
|
|
29 |
} else {
|
|
|
30 |
$V= & $Unit->getValidator();
|
|
|
31 |
echo ' is invalid:</p>';
|
|
|
32 |
while ($error = $V->fetch()) {
|
|
|
33 |
echo $error->toString() .'<br />';
|
|
|
34 |
}
|
|
|
35 |
}
|
|
|
36 |
?>
|
|
|
37 |
<p>Enter a date / time to validate:</p>
|
|
|
38 |
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="get">
|
|
|
39 |
Year: <input type="text" name="y" value="2039"><br />
|
|
|
40 |
Month: <input type="text" name="m" value="13"><br />
|
|
|
41 |
Day: <input type="text" name="d" value="32"><br />
|
|
|
42 |
Hour: <input type="text" name="h" value="24"><br />
|
|
|
43 |
Minute: <input type="text" name="i" value="-1"><br />
|
|
|
44 |
Second: <input type="text" name="s" value="60"><br />
|
|
|
45 |
<input type="submit" value="Validate">
|
|
|
46 |
</form>
|
|
|
47 |
<p><b>Note:</b> Error messages can be controlled with the constants <code>CALENDAR_VALUE_TOOSMALL</code> and <code>CALENDAR_VALUE_TOOLARGE</code> - see <code>Calendar_Validator.php</code></p>
|
|
|
48 |
|
|
|
49 |
<?php echo '<p><b>Took: '.(getmicrotime()-$start).' seconds</b></p>'; ?>
|