SpaceChick Posted August 16, 2013 Share Posted August 16, 2013 I am fairly new to .php and am having some trouble trying to calculate a date. I have an .html form that uses .php to send the data from the form in an email. On the form I have a jquery calendar where the user can select the date a service is needed. The user also enteres the time the service is needed as 24 hour time. I am able to pass the data and everything works fine. Originally we didn't need the date/time to be anymore than integers. So this is how the date and time are passed in the .html: <script> $(function() { $( "#datepicker" ).datepicker(); }); </script> <input name="datepicker" type="text" id="datepicker" size="10" maxlength="10" /> <input name="req_time" type="text" size="4" maxlength="4" /> the variable $datepicker passes the date to the .php and gets entered into the email as "Date Needed" formatted as mm/dd/yyyy. the variable $req_time" passes the date to the .php and gets entered into the email as "Time Needed" formated as 0000 (integer). However, now I need to check the date and time entered and compare them to the system date. If the entered date and time are less than 72 hours from the system date, I need to force a popup message. I have the popup message working. I just have no clue how to: 1) convert the entered date/time ($datepicker/$req_time) values to a date/time that can be calculated. 2) grab the saystem date/time in a value that can be calculated. 3) determine if the entered date is 72 hours or less from the syatem date. Can this be done in .php and if so, can someone assist me? SpaceChick Quote Link to comment https://forums.phpfreaks.com/topic/281255-help-comparing-entered-date-with-system-date/ Share on other sites More sharing options...
requinix Posted August 16, 2013 Share Posted August 16, 2013 Make the datepicker return a yyyy-mm-dd string, then compare if ($date . $time <= date("Y-m-dHi", strtotime("+72 hours")) { // too soon }Don't think that it's doing some kind of date comparison - it's not. It's just a regular string comparison. Normally that's bad for numbers but you can do it here because each piece of the date and time is (1) in the same place in both strings, (2) padded to the same number of digits on both sides without any kind of AM/PM confusion in the time, and (3) arranged in most-significant to least-significant (largest to smallest intervals) order. If that's confusing you can stick to actual numbers. Unix timestamps, specifically: the number of seconds since 1970 began. if (strtotime($date . " " . $time) <= strtotime("+72 hours")) {Side note: timezones will matter here. If your server's timezone is not the timezone you want to use in the comparison then you should change it before doing any work with date and time strings. Quote Link to comment https://forums.phpfreaks.com/topic/281255-help-comparing-entered-date-with-system-date/#findComment-1445400 Share on other sites More sharing options...
SpaceChick Posted August 16, 2013 Author Share Posted August 16, 2013 Thank you requinix. I know it's not the .php, but I assume I place this in the .html code near where I have the datepicker script so if true, I can force the popup, else false, I just continue through the form? Timezones won't matter, this form will be submitted by local users. Quote Link to comment https://forums.phpfreaks.com/topic/281255-help-comparing-entered-date-with-system-date/#findComment-1445410 Share on other sites More sharing options...
requinix Posted August 16, 2013 Share Posted August 16, 2013 No, that is PHP. Submit the form, check the date, and if it's too soon then redisplay the form but including the message. If you want it entirely Javascript then we need a different approach. Quote Link to comment https://forums.phpfreaks.com/topic/281255-help-comparing-entered-date-with-system-date/#findComment-1445434 Share on other sites More sharing options...
darkfreaks Posted August 16, 2013 Share Posted August 16, 2013 like Req said you can't place PHP inside a .html file. like as mentioned you can do it entirely in JavaScript. or you might be able to get away with using Ajax which is a combination of PHP & JavaScript. <script>$(function() {$( "#datepicker" ).datepicker(({ dateFormat: "yy-mm-dd" })); }); </script> <form action="action.php"> </form> then in action.php you can process your form and compare. Quote Link to comment https://forums.phpfreaks.com/topic/281255-help-comparing-entered-date-with-system-date/#findComment-1445444 Share on other sites More sharing options...
SpaceChick Posted August 17, 2013 Author Share Posted August 17, 2013 Thank you both. I am aware that you can't place PHP inside HTML, and I do call a PHP page using the form action tag. I just wasn't sure if requinix suggestion was PHP or JS. Thank you for the clarification. Quote Link to comment https://forums.phpfreaks.com/topic/281255-help-comparing-entered-date-with-system-date/#findComment-1445455 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.