PHP if condition based on date not working [duplicate] - php

This question already has answers here:
Compare given date with today
(14 answers)
Closed 8 years ago.
I want to execute a if statement where I want if given {date} is less or equal than today then {due_amount}= {paidbystudent} else {due_amount}= '0'
Here is my code:
if ({date} <= Today()) {
{due_amount}={paidbystudent};
} else {
{due_amount}='0';
}
But its not working. Please help me how to do this.
I have also tried this code but its not working properly this is checking only date and ignoring month and year
$todays_date=date("d/m/Y", strtotime("today"));
$date=date("d/m/Y", strtotime({date}));
if ($date <= $todays_date) {
{due_amount}={paidbystudent};
} else {
{due_amount}='0';
}

How about this:
$date = '2014-05-22'; // fetch from db, user input etc
if (strtotime($date) <= time()) {
echo 'paid by student';
} else {
echo 0;
}
DEMO
EDIT: As pointed out by deceze, a better way to approach this would be to compare the UNIX timestamp values instead of a date format.

Related

compare date string in php with mm-dd-yy format [duplicate]

This question already has answers here:
How can I compare two dates in PHP?
(13 answers)
Closed 5 years ago.
i need to compare two date from string,
my dates:
first date: 11-11-19
second date: 11-24-17
so i try to
$firstdate = "11-11-19";
$seconddate = "11-24-17";
if($firstdate < $seconddate)
{
echo "firstdate is minor than the secondate";
}
else
{
echo "seconddate is major than the firstdate";
}
if i change < or > the if statement should change, but i get always the firsdate...
how to do to compare two dates in this forma mm-dd-yy ?
Thanks
You can use strtotime to convert string to unix timestamp, and compare that.
$firstdate = strtotime("11-11-19");
$seconddate = strtotime("11-24-17");
if($firstdate < $seconddate)
{
echo "firstdate is minor than the secondate";
}
else
{
echo "seconddate is major than the firstdate";
}
You can convert both dates to timestamp:
echo (strtotime($firstdate) < strtotime($seconddate)) ? "firstdate is minor than the secondate" : "seconddate is major than the firstdate";

Compare dates with PHP [duplicate]

This question already has answers here:
Check if two PHP datetime objects are set to the same date ( ignoring time )
(10 answers)
Closed 7 years ago.
Here is my question:
I have 2 datetime fields with the following values.
- n_date = '2015-11-06 00:00:00.000'
- ArrivalDate = '2015-11-06 01:00:00.000'
I want to compare only the date part of these fields so that the following:
if ($n_date!=$v[ArrivalDate]
{
do something ...
}
Does not do something
thx in advance!
Use strtotime() for this,
if((date("Y-m-d",strtotime($n_date))) == (date("Y-m-d",strtotime($ArrivalDate)))) {
// both dtae are equal
} else {
// both date are not equal
}

How do I compare dates in PHP? [duplicate]

This question already has answers here:
How to compare two dates in php [duplicate]
(16 answers)
Closed 8 years ago.
How can I check if a date captured in the database is less than the current date?
foreach( $results as $r ) {
$date = $r['date'];
if($date < $currentdate) {
echo 'oldest dates';
} else {
echo 'newest dates';
}
Use strtotime function:
$date = strtotime($date);
$currentdate = strtotime($currentdate);
Use strtotime($date)<strtotime($currentdate)
and make sure that both dates are in correct format.

PHP - How to find if a date is between 2 dates [duplicate]

This question already has answers here:
How can I compare two dates in PHP?
(13 answers)
Closed 9 years ago.
I get some datas with dates from a database :
$data['my_date'])
Type is date : YYYY-MM-DD
I would like to make with PHP a condition to found if $data['my_date']) is between 2 dates like :
if ($data['my_date'] >= 2009-01-01 && $data['my_date'] <= 2009-12-31) {
$datas = '5';
}
else {
$datas = 1;
}
It doesn't work as expected, the condition is not verified. What should i do ?
There is no literal syntax for dates, you should enclose them in quotes and treat them as strings. If you are using the YYYY-MM-DD format, then it is sortable alphabetically, and your current method should work.
if ($data['my_date'] >= '2009-01-01' && $data['my_date'] <= '2009-12-31') {
$datas = '5';
}
else {
$datas = 1;
}
If you don't quote your dates, you are doing integer operations:
$data['my_date'] >= 2009-01-01 ====> $data['my_date'] >= 2007
You need to convert all dates by strtotime() to timestamp and then compare them.
strtotime($data['my_date']) >= strtotime('2009-01-01')...
You use either strtotime() or mktime() to convert your dates into timestamp, then compare it.

PHP Date Between [duplicate]

This question already has answers here:
How can I determine if a date is between two dates in PHP?
(3 answers)
Closed 9 years ago.
Need to check wether a given date is in between two given dates using PHP, This is the code I've written:
$today = date_create('28-Feb-2012');
$fromdate = date_create('20-Feb-2012');
$todate = date_create('22-Feb-2012');
if ($today>=$fromdate && $todat<=$todate)
{
echo 'in range';
}
else
{
echo 'not in range';
}
But this always returns in range. Can't figure out where the problem is. Please help.
I know it's a bit of a hacky solution, but I tend to use strtotime() for that kind of thing, as it returns an integer:
$today = time();
$fromdate = strtotime('20-Feb-2012');
$todate = strtotime('22-Feb-2012');
if ($today>=$fromdate && $today<=$todate)
{
echo 'in range';
}
else
{
echo 'not in range';
}
EDIT: i assume the $todat was just a typo into stackoverflow, and that in your code you actually have $today, but if not that might be your problem - undefined variables, in some settings, can be considered 0 I believe.

Categories