Before even getting the first user input we faced a problem. There were very few inbuilt validations for eg., for date, time etc. We therefore had to make scripts for that as well.
Date script PHP :
<?php
date_default_timezone_set('Asia/Kolkata');
$date = date('Y-m-d');
$maxResTime = DateTime::createFromFormat('h:i:sa', '07:00:00pm');
$currentTime = DateTime::createFromFormat('h:i:sa', date('h:i:sa'));
$allDates = array();
$quick_replies = array();
if($currentTime >= $maxResTime){
$startIndex = 1;
$endIndex = 7;
$flag = true;
}else{
$startIndex = 1;
$endIndex = 6;
$flag = false;
$d = Datetime::createFromFormat('Y-m-d', $date)->format('jS M, Y(D)');
$attributes = array("date"=>$date);
//$quick_replies[0] = array("title"=>$d, "set_attributes"=>$attributes);
array_push($quick_replies, array("title"=>$d, "set_attributes"=>$attributes));
array_push($allDates, $date);
}
for($i=$startIndex ;$i<=$endIndex; $i++){
$date = date("Y-m-d",strtotime("+$i days"));
$showDate = date("jS M",strtotime("+$i days"));
$d = Datetime::createFromFormat('Y-m-d', $date)->format('jS M, Y(D)');
$attributes = array("date"=>$date, "showDate"=>$showDate);
//$quick_replies[$i] = array("title"=>$d, "set_attributes"=>$attributes);
array_push($quick_replies, array("title"=>$d, "set_attributes"=>$attributes));
array_push($allDates, $date);
}
$messages = array();
$messages[0] = array("text"=>"On which date would you like to come?",
"quick_replies"=>$quick_replies);
$res = array("messages"=>$messages);
echo json_encode($res, JSON_UNESCAPED_SLASHES);
?>