To validate a date for not empty, I recommend the following:
1) Use a microflow with an exclusive split. In this split, check if the date is empty. you can do this like:
$MyDateValue != empty
2) In the 'false' flow, use the Validation Feedback activity to put the error message on the field on the page where the value is entered.
I recommend that you replace the default 'Save' button with a microflow that does all your validation at once, including this one. If you want to make sure that the date occurs in the past, you could do something like :
$MyDateValue < [%CurrentDateTime%]
You can treat your date variables like you would integers when it comes to comparison