Compare given date with today
strtotime($var);
Turns it into a time value
time() - strtotime($var);
Gives you the seconds since $var
if((time()-(60*60*24)) < strtotime($var))
Will check if $var
has been within the last day.
Best way to compare given date with current date without time part in a given time zone
The java.util
date-time API and their formatting API, SimpleDateFormat
are outdated and error-prone. It is recommended to stop using them completely and switch to the modern date-time API.*
Demo using java.time API (modern date-time API):
import java.time.DateTimeException;
import java.time.LocalDate;
import java.time.LocalTime;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Locale;
public class Main {
public static void main(String[] args) {
// Tests
try {
System.out.println(compareWith("2021-02-28", "yyyy-MM-dd", "Asia/Calcutta"));
System.out.println(compareWith("2021/03/03", "yyyy/MM/dd", "Asia/Calcutta"));
} catch (DateTimeException e) {
System.out.println("Date string parsing error occured.");
}
}
static int compareWith(String strDate, String format, String timezone) throws DateTimeException {
ZoneId zoneId = ZoneId.of(timezone);
DateTimeFormatter dtf = DateTimeFormatter.ofPattern(format, Locale.ENGLISH);
ZonedDateTime today = ZonedDateTime.now(zoneId).with(LocalTime.MIDNIGHT);
ZonedDateTime date = LocalDate.parse(strDate, dtf).atStartOfDay(zoneId);
return today.compareTo(date);
}
}
Output:
1
-1
Learn more about the modern date-time API from Trail: Date Time.
* For any reason, if you have to stick to Java 6 or Java 7, you can use ThreeTen-Backport which backports most of the java.time functionality to Java 6 & 7. If you are working for an Android project and your Android API level is still not compliant with Java-8, check Java 8+ APIs available through desugaring and How to use ThreeTenABP in Android Project.
How to compare a given date from today
Your first problem is that you're using DateTime.Now
instead of DateTime.Today
- so subtracting 6 months will give you another DateTime
with a particular time of day, which is very unlikely to be exactly the date/time you've parsed. For the rest of this post, I'm assuming that the value you parse is really a date, so you end up with a DateTime
with a time-of-day of midnight. (Of course, in my very biased view, it would be better to use a library which supports "date" as a first class concept...)
The next problem is that you are assuming that subtracting 6 months from today and comparing it with a fixed date is equivalent to adding 6 months to the fixed date and comparing it with today. They're not the same operation - calendar arithmetic just doesn't work like that. You should work out which way you want it to work, and be consistent. For example:
DateTime start = DateTime.Parse(tbDate.Text);
DateTime end = start.AddMonths(6);
DateTime today = DateTime.Today;
if (end >= today)
{
// Today is 6 months or more from the start date
}
else
{
// ...
}
Or alternatively - and not equivalently:
DateTime target = DateTime.Parse(tbDate.Text);
DateTime today = DateTime.Today;
DateTime sixMonthsAgo = today.AddMonths(-6);
if (sixMonthsAgo >= target)
{
// Six months ago today was the target date or later
}
else
{
// ...
}
Note that you should only evaluate DateTime.Today
(or DateTime.Now
etc) once per set of calculations - otherwise you could find it changes between evaluations.
Comparing user input date with current date
You can get the current Date
with:
todayDate = new Date();
EDIT: Since you need to compare the dates without considering the time component, I recommend that you see this: How to compare two Dates without the time portion?
Despite the 'poor form' of the one answer, I actually quite like it:
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
sdf.format(date1).equals(sdf.format(date2));
In your case, you already have:
SimpleDateFormat dateFormatter = new SimpleDateFormat("dd-MM-yyyy");
so I would consider (for simplicity rather than performance):
todayDate = dateFormatter.parse(dateFormatter.format(new Date() ));
how to compare a given date with current date in sql
Firstly, you have specified that column submitDate is of datatype Date while, as per your question its datatype should be Timestamp.When the datatype of submitDate column is Date, there is no reason to even compare the time.
However if you need to still want to compare the submitDate with current timestamp, you can do it this way:
select * from submitDate where date_format(submitDate,'%d/%m/%y %T') <= now();
Edit: The above query is for Mysql
How to compare a date string to current date?
You can use compareTo()
method of Date.
It will return an integer value,
- return a value 0 if the argument Date (compareDate) is equal to this Date;
- return a value less than 0 if this Date is before the Date argument (compareDate);
- return a value greater than 0 if this Date is after the Date
argument (compareDate).
So, you need to modify your if condition
as below, if you want to check both date are same or not.
if (date.compareTo(compareDate.getTime()) == 0) {
Get current date/time and compare with other date
There's not much point in converting datetime.datetime.now()
into a string, just so you can convert it right back to a datetime. Just leave it as-is.
import datetime
CurrentDate = datetime.datetime.now()
print(CurrentDate)
ExpectedDate = "9/8/2015 4:00"
ExpectedDate = datetime.datetime.strptime(ExpectedDate, "%d/%m/%Y %H:%M")
print(ExpectedDate)
if CurrentDate > ExpectedDate:
print("Date missed")
else:
print("Date not missed")
Result:
2015-09-09 12:25:00.983745
2015-08-09 04:00:00
Date missed
Comparing results with today's date?
There is no native Now() function in SQL Server so you should use:
select GETDATE() --2012-05-01 10:14:13.403
you can get day, month and year separately by doing:
select DAY(getdate()) --1
select month(getdate()) --5
select year(getdate()) --2012
if you are on sql server 2008, there is the DATE date time which has only the date part, not the time:
select cast (GETDATE() as DATE) --2012-05-01
Related Topics
How to Bind MySQLi Bind_Param Arguments Dynamically in PHP
Remove New Lines from String and Replace With One Empty Space
How to Properly Url Encode a String in PHP
Can Png Image Transparency Be Preserved When Using PHP'S Gdlib Imagecopyresampled
Checking If Date Is Weekend PHP
Why Is Facebook PHP Sdk Getuser Always Returning 0
PHPexcel Runs Out of 256, 512 and Also 1024Mb of Ram
How to Use Order by For Multiple Columns in Laravel 4
Using PHP 5.5'S Password_Hash and Password_Verify Function
How to Return Outer HTML of Domdocument
MySQLi::MySQLi(): (Hy000/2002): Can't Connect to Local MySQL Server Through Socket 'MySQL' (2)
Json_Decode Returns Null After Webservice Call
How to Check Uploaded File Type in PHP