当开始日期ex:6/1/2016和 结束日期ex:8/1/2016
这是计算天数的过程,因此该过程是3天的结果 2016年6月1日 2016年7月1日 2016年8月1日
这是错误的。
必须是2016年6月1日至2016年7月1日以及2016年7月1日至2016年8月1日
所以总和2天不是3天
$start_date = strtotime($date_from);
$end_date = strtotime($date_to);
$datetime1 = date_create($date_from);
$datetime2 = date_create($date_to);
$interval = date_diff($datetime1, $datetime2);
$cs_booking_days = $interval->days;
// Loop between timestamps, 24 hours at a time
$total_price = '';
$adult_price = 0;
$pricings = get_option('cs_price_options');
$cs_offers_options = get_option("cs_offers_options");
$pricings_array = $pricings[$post_id];
if (isset($pricings[$post_id]['cs_plan_days'])) {
$cs_sp_days = $pricings[$post_id]['cs_plan_days'];
}
$pricing_data = array();
$brk_counter = 0;
$total_orignal = 0;
$price['total_price'] = 0;
$flag = false;
for ($i = $start_date; $i <= $end_date; $i = $i + 86400) {
$total_days++;
$brk_counter++;
$thisDate = date('Y-m-d', $i); // 2010-05-01, 2010-05-02, etc
$day = strtolower(date('D', strtotime($thisDate)));
$adult_price = $pricings_array['cs_pricing_branches']['adult_' . $day . '_price'][0];
$adult_temp_price = $adult_price != '' ? $adult_price : 0;
$adult_price = $adult_temp_price;
$to_check_date = strtotime(date('Y-m-d', $i));
答案 0 :(得分:0)
<?php
// your code goes here
$startTimeStamp = strtotime("2016/01/06");
$endTimeStamp = strtotime("2016/01/08");
$timeDiff = abs($endTimeStamp - $startTimeStamp);
$numberDays = $timeDiff/86400; // 86400 seconds in one day
// and you might want to convert to integer
$numberDays = intval($numberDays);
echo $numberDays;
返回您的代码=&gt;取代强>
for ($i = $start_date; $i <= $end_date; $i = $i + 86400) {
:此强>
for ($i = $start_date; $i < $end_date; $i = $i + 86400) {
&lt; = 有问题,请输入&lt;
<强>说明强>
06.01 - 08.01
第一循环: $ i = 06.01和&lt; = 08.01
第二循环: $ i = 07.01和&lt; = 08.01
第三循环: $ i = 08.01且&lt; = 08.01 - 仍然为真,所以SUM = 3天
更改后
第一循环: $ i = 06.01和&lt; 08.01
第二循环: $ i = 07.01和&lt; 08.01
第三循环: $ i = 08.01和&lt; 08.01 - NOW FALSE,所以SUM = 2天