Php 第一个星期二
Php 第一个星期二,php,date,Php,Date,first_tube()函数应该返回一年中第一个星期二的日期,但在2011年的情况下,它返回的值尤其错误。如何修复代码,使其在所有情况下都能正常工作 function first_tuesday($year){ $first_january = mktime(0,0,0,1,1,$year); $day_week = date("w",$first_january ); $first_tuesday = $first_jan + ((2 - $day_week) % 7
first_tube()
函数应该返回一年中第一个星期二的日期,但在2011年的情况下,它返回的值尤其错误。如何修复代码,使其在所有情况下都能正常工作
function first_tuesday($year){
$first_january = mktime(0,0,0,1,1,$year);
$day_week = date("w",$first_january );
$first_tuesday = $first_jan + ((2 - $day_week) % 7)* 86400;
return date("d/m/Y",$first_tuesday);
}
strotime
足够聪明,可以满足您的需求:
function first_tuesday($year){
return date('d/m/Y', strtotime("first Tuesday of January $year"));
}
这似乎对我有用:
<?php
$first_tuesday = new DateTime("first Tuesday of January 2011");
echo $first_tuesday->format('Y-m-d H:i:s');
?>
将其转换为功能形式:
<?php
/**
* @return DateTime Returns a DateTime object representing the
* first Tuesday of the year
*/
function first_tuesday($year){
$first_tuesday = new DateTime("first Tuesday of January $year");
return $first_tuesday;
}
?>
如果您只希望字符串采用您的格式,则:
<?php
/**
* @return DateTime Returns a string representing the first
* Tuesday of the year in the d/m/Y format
*/
function first_tuesday($year){
$first_tuesday = new DateTime("first Tuesday of January $year");
return $first_tuesday->format('d/m/Y');
}
?>
您可以在PHP手册中阅读有关该类的更多信息(该手册也有法语版本,因为根据原始问题,法语似乎是您的母语。)请改用类:
function first_tuesday($year){
$day = new DateTime(sprintf("First Tuesday of January %s", $year));
return $day->format('d/m/Y');
}
用法:
echo first_tuesday(2011);
输出:
04/01/2011
简单:
function first_tuesday($year)
{
return date("d/m/Y",strtotime('first Tuesday january '.$year));
}
无需使用对象,这是获得它的最快方法。您能用英语写变量名吗?这样我们就更容易理解您要做什么?完成。请记住,如果您在此处找到了问题的解决方案,请单击其中一个答案旁边的复选标记接受答案。不,不是。在我的机器(PHP5.5.3)上,您的代码返回“07/01/2014”否,这是不正确的。您的函数将返回
07/01/2014
——但实际值是04/01/2011
。但是07/01/2014是否正确?2014年。@AmalMurali你什么意思?@AmalMurali,太棒了!!让我给你买杯茶吧!:)哇,太棒了,它的性能最快
——不相关。您使用DateTime不是因为它快,而是因为它更好。您可能是指函数中的return
而不是echo
。)@溜冰场。服务员。6:对。修好了,谢谢!顺便检查一下这个代码$exclus=数组(1,4);函数hasard(){$resultat=rand(1,10);返回$resultat;}echo“Nombre au hasard:”.hasard()。“\n”@用户3172273:这是一个不同的问题。请照此邮寄。点击按钮。确保你包含了所有相关的细节,并在你的问题中包含了预期的结果。另外,这个网站上的大多数用户都不会说话,所以我建议你用英语发布问题(和代码)。干杯+1对于正确的方法!
function first_tuesday($year)
{
return date("d/m/Y",strtotime('first Tuesday january '.$year));
}