我正在为客户编辑一些代码,并且很难想出这个代码。我试图比较两个日期,并根据差异设定一定金额的费用,但我有比较日期的问题。第一个日期由客户挑选,第二个日期设置为今天,如果客户到达日期与今天或1天内相同,则费用应为25;例如今天是01/25,如果到达日期是01/25或01/26则费用应该是25,如果到达日期是从今天起2天或更长时间,则费用为0.
客户选择的日期格式为:m / d / Y. 选择:
<tr style="border-bottom: 1px solid #dddddd;"><td style="text-align:right;">Arrival Date:</td><td><input id="arrivaldate" name="arrivaldate" value="<?php if (strlen($arrivaldate)>4) { echo date("m/d/Y", strtotime($arrivaldate)); } else { echo date("m/d/Y"); } ?>" placeholder="click here for arrival date" readonly></td></tr>
我已经厌倦了各种方法来转换和计算这个并且用google搜索但是它没有正确填充,这是我尝试计算费用:
$date1 = new DateTime(date("Y-m-d"));
$date2 = new DateTime(date("Y-m-d",$arrivaldate_converted));
$interval = $date1->diff($date2);
$todaysDate = date("Y-m-d");
$expressFeeDate = date('Y-m-d', strtotime('+2 days', $arrivaldate_converted));
$todaysDateConverted = new DateTime($todaysDate);
$expressFeeDateConverted = new DateTime($expressFeeDate);
$expressInterval = $todaysDateConverted->diff($arrivaldate_converted);
if ($expressInterval->days <= 1) {
$expressfee= 25.00;
// echo '<br>include express fee';
}else if($expressInterval->days>=2 || $expressInterval->days>1){
$expressfee= 0;
} else {
// echo '<br>do not include express fee';
$expressfee=0;
}
感谢您的任何反馈,非常感谢任何帮助。
答案 0 :(得分:1)
你尝试过这样的事吗?
$date1 = new DateTime($today);
$date2 = new DateTime($choosen_date);
// Should have the days difference between your 2 dates
$diff = $date2->diff($date1)->format("%a");
然后应该很容易设定你的费用......