compare dates not working
Hallo,
I am comparing 2 dates. It is clear that $db_minus7 is greater so the value of $can_invoiced should be 'maybe' but it is 'Yes'. When i execute.
<?php
$db_minus7 = '2010-07-05 09:45:29.420';
$completion_date = '30.07.2009';
if(date("m-d-Y",strtotime($db_minus7)) > date("m-d-Y",strtotime($completion_date))) {
$can_invoiced = 'maybe';
} else {
$can_invoiced = 'Yes';
}
e开发者_Python百科cho $can_invoiced;
?>
please help
why don't you just compare the times instad of formating them again like this:
if(strtotime($db_minus7) > strtotime($completion_date)) {
$can_invoiced = 'maybe';
} else {
$can_invoiced = 'Yes';
}
EDIT:
if you want to use date(), use "Ymd"
or "Y-m-d"
as pattern because it's string-comparision, and this is the logical order to work with (arrange the patterns from "big"(years) to small (days... or maybe seconds, if you need));
Dont' use "m-d-Y"
but "Y-m-d"
.
01-01-2010
is lower than 02-01-2009
(bad !) but 2010-01-01
is not lower than 2009-01-02
(good !).
Compare the dates as datestamps, not as strings:
if(strtotime($db_minus7) > strtotime($completion_date)) {
If you have to compare the dates as strings, then use Y-m-d rather than m-d-y
Never Compare Dates as strings, even if it works for your Testcases it will fall on your feets sooner or later ... or maybe... richard stallman will hunt you down, i don't know ...
if(strtotime($db_minus7) > strtotime($completion_date)) {
$can_invoiced = 'maybe';
} else {
$can_invoiced = 'Yes';
}
精彩评论