计算一个日期和一个月中某一天之间的PHP差值
我正在开发一个php函数,它可以根据一些变量计算一年中的周数 实际上,我有两个变量:计算一个日期和一个月中某一天之间的PHP差值,php,date,datetime,days,Php,Date,Datetime,Days,我正在开发一个php函数,它可以根据一些变量计算一年中的周数 实际上,我有两个变量: 第一个是日期变量(YYYY-MM-DD格式) 第二个是“day mark”变量(我有一个9天的列表->2、6、8、10、14、17、21、23、27) 这是我设法组合起来的函数,因此我可以获得一年中的一周: $duedt = explode("-", "YYYY-MM-DD"); $date = mktime(0, 0, 0, $duedt[1], $duedt[2], $duedt[0]); $week =
$duedt = explode("-", "YYYY-MM-DD");
$date = mktime(0, 0, 0, $duedt[1], $duedt[2], $duedt[0]);
$week = (int)date('W', $date);
作为上述代码的示例,如果我们将“YYYY-MM-DD”替换为“2014-02-09”,则将确定周数为6(正确)
现在,我的问题是:如何修改它,以便它跟踪第二个变量(“日标记”)
对于“2014-02-09”日示例,我想要的是:
- 如果“日标记”为10(表示该月的10日)=>该周 号码是7
- 如果“日标”为8(表示第8天) 月)=>周数将为6
迈克尔我不确定你是否把事情复杂化了。你不能用同样的方法提供日期并获得任何日期的周数吗?或者更简单的是:
$date = new DateTime('2014-02-08');
echo (int) $date->format('W'); // 6
$date = new DateTime('2014-02-09');
echo (int) $date->format('W'); // 6
$date = new DateTime('2014-02-10');
echo (int) $date->format('W'); // 7
功能周/日/月($day,$month,$num,$year){
$days_in_month=array(1=>31,2=>28,…)//不考虑leap,您需要
$ts=标准时间(格式为日期($day,$month,$num,$year));
$week_num=日期($W',$ts);
$month_days=$days_in_month[$month_num];
对于($i=1;$i non-leap,1=>leap。计算leap很简单。选择正确的数组Hello John,谢谢你的代码。的确,这个想法有点“过于复杂”,但本质上很简单:)事实上,找出这段代码中的周数,将有助于打开包含数据的特定excel电子表格:)这就是我需要这两个变量的原因!再次感谢您的代码,但这不是我想要实现的。。。
function week_day_of_month($day,$month_num, $year) {
$days_in_month = array(1=>31, 2 => 28,...);//doesn't account for leap, you need to
$ts = strtotime(format_date($day,$month_num,$year));
$week_num = date('W', $ts);
$month_days = $days_in_month[$month_num];
for ($i = 1;$i<=$month_days;$i++) {
$ats = strtotime(format_date($i,$month_num, $year));
if ($ats == $ts)
break;
}
$day = $i;
return array($day,intval($week_num));
}