Re: [PHP] Date help (no not that kind)

2001-11-11 Thread DL Neil

Hi Sundog,
Can help you with dates (but no, if you want that kind you'll definitely not be 
wanting my advice...)

- Original Message -
 I am trying to determine if todays date ($today) is within a week
 ($startcheck) of a given date ($dob). This is what I have so far.

 $todaydate = (date(Y-d-m));
 $today = strtotime($todaydate);
 // $today prior to strtotime = 2001-10-11
 $startcheck = strtotime(2001-08-11);
 $dob = strtotime(2001-15-11);

 //$today is CLEARLY between the two dates I'm testing with but no is
 always returned.

 if($today = $dob  $startcheck = $today) {
 print yes;
 }
 else {
 print no;
 }

 Here are the values assigned to the vars, why is $today so much smaller
 than $startcheck and $dob?

 1002783600 = today
 1005452940 = startcheck
 1005451980 = dob

 win32 php4


Let's start with perceptions because there's a couple here that have the potential 
to hold you on the
side-benches whilst everyone else has a date and has made it to the dance floor...

The manual (http://www.php.net/manual/en/function.strtotime.php) says, strtotime --  
Parse about any english
[sic] textual datetime description into a UNIX timestamp. The key word is any and 
the fact that it is not
all.

 //$today is CLEARLY between the two dates I'm testing with but no is
 always returned.

Er, no - it is not clear! A quick geography/horology lesson: the rest of the world 
either do not use the same
date system or do not express the Gregorian calendar the way Americans do. Today no 
one has a problem with a
date written as 11/11/2001, but when 10/11/2001 is written down, does it mean 
yesterday (10-Nov-2001) or one
month back (11-Oct-2001)? In America, the two formats are known as American 
(MM/DD/CCYY) and European
(DD/MM/CCYY) format.

Moving to the format used in the code above (2001). A format of this nature is 
widely used because it
facilitates sorting/comparisons - ah but watch those perceptions, if you were 
comparing/sorting/performing
arithmetic on two dates, one in Oct and one in Nov, then the convention will have to 
be CCYYMMDD = century,
year, month, then day! BTW you will see the logical flow of this ever decreasing 
period/increasing precision,
and how it can be kept going into CCYYMMDDHHMMSS and thereafter depending upon your 
needs, time base/available
utility functions, etc!

The function is called 'string to time'. In other words, a series of alphanumeric 
characters are passed, and a
date-time is returned (in the form of a UNIX timestamp). Given that there are many 
perceptions involved in
interpreting what the incoming string of digits means, some dates cannot be 
unambiguously expressed/resolved (eg
yesterday's date).

It's always a good idea to add some 'debug echoes' to new code, just to be sure that 
your perceptions agree with
the computer's implacable logic - I added to your code:

echo Todaydate=$todaydate~;
echo brToday=$today~ Startcheck=$startcheck~ DoB=$dob~;
echo br.
 Today=.date(Y-M-d,$today).
 ~ Startcheck=.date(Y-M-d,$startcheck).
 ~ DoB=.date(Y-M-d,$dob).~;

and this was returned:

Todaydate=2001-11-11~
Today=1005436800~ Startcheck=1005510600~ DoB=1005509700~
Today=2001-Nov-11~ Startcheck=2001-Nov-11~ DoB=2001-Nov-11~no

The last no is the original output, but before that you can see 'why' - if the date 
values/definitions are
modified, the code works exactly as (I perceive, is) required.

Regards,
=dn



-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]




[PHP] Date help (no not that kind)

2001-11-10 Thread sundogcurt

I am trying to determine if todays date ($today) is within a week 
($startcheck) of a given date ($dob). This is what I have so far.

$todaydate = (date(Y-d-m));
$today = strtotime($todaydate);
// $today prior to strtotime = 2001-10-11
$startcheck = strtotime(2001-08-11);
$dob = strtotime(2001-15-11);

//$today is CLEARLY between the two dates I'm testing with but no is 
always returned.

if($today = $dob  $startcheck = $today) {
print yes;
}
else {
print no;
}

Here are the values assigned to the vars, why is $today so much smaller 
than $startcheck and $dob?

1002783600 = today
1005452940 = startcheck
1005451980 = dob

win32 php4

Thanks in advance


-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]