[英]Calculate days in between given start date and end date in php
I have $start_date & $end_date. 我有$ start_date和$ end_date。
I need to find out number of days with name's of days. 我需要找出天数和天数。
I tried following code snipet : 我尝试了以下代码片段:
$start_date = '20-07-2012';
$end_date = '22-07-2012';
$start = strtotime($start_date);
$end = strtotime($end_date);
$interval = 2;
$out='';
$int = 24*60*60*$interval;
for($i= $start;$i<= $end; $i += $int ){
echo date('d-m-Y',$i).'<br />';
}
output : 输出:
28-11-2014
30-11-2014
But my expected out is like : 但是我的期望是:
28-11-2014 => friday
30-11-2014 => saturday
let me know what should be php code to yeild the expected output. 让我知道应该使用什么php代码来产生预期的输出。
Day name is in 'l'
(lowercase L). 日期名称以'l'
(小写L)表示。
If you need just string, use: 如果只需要字符串,请使用:
echo date('d-m-Y => l', $i) . '<br />';
If you want an array, use: 如果需要数组,请使用:
$days = array();
for ($i = $start;$i <= $end; $i += $int) {
$days[] = array(
'date' => date('d-m-Y', $i),
'day' => date('l', $i)
);
}
print_r($days);
// $array[desc:day count starting w 1][desc: 'date' or 'day'];
// $array[2]['day'];
<?php
$start = '27-11-2014';
$end = '1-12-2014';
function date_difference($start, $end)
{
$first_date = strtotime($start);
$second_date = strtotime($end);
$offset = $second_date-$first_date;
$result = array();
for($i = 0; $i <= floor($offset/24/60/60); $i++) {
$result[1+$i]['date'] = date('d-m-Y', strtotime($start. ' + '.$i.' days'));
$result[1+$i]['day'] = date('l', strtotime($start. ' + '.$i.' days'));
}
echo '<pre>';
print_r($result);
echo '</pre>';
}
date_difference($start, $end);
?>
result 结果
Array
(
[1] => Array
(
[date] => 27-11-2014
[day] => Thursday
)
[2] => Array
(
[date] => 28-11-2014
[day] => Friday
)
[3] => Array
(
[date] => 29-11-2014
[day] => Saturday
)
[4] => Array
(
[date] => 30-11-2014
[day] => Sunday
)
[5] => Array
(
[date] => 01-12-2014
[day] => Monday
)
)
try this modified code 试试这个修改后的代码
<?php
$start_date = '20-07-2012';
$end_date = '22-07-2012';
$start = strtotime($start_date);
$end = strtotime($end_date);
$interval = 2;
$out='';
$int = 24*60*60*$interval;
for($i= $start;$i<= $end; $i += $int ){
echo date('d-m-Y => l',$i).'<br />';
}
?>
output : 输出:
20-07-2012 => Friday
22-07-2012 => Sunday
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.