我需要在php日期函数中澄清一下

时间:2014-08-26 10:29:16

标签: php

我使用以下代码生成下一个日期:

   $s1=date('d/M/Y', strtotime('+1 day'));
   echo $s1;

例如:假设当前日期是2014年8月26日。         所以上面的代码生成27 / Aug / 2014并存储在varible $ s1中。

通过使用变量s1,我想创建28 / Aug / 2014。如何创作?

我不想在STRTOTIME功能中使用'+2天'。我想基于变量$ s1生成第二天。

7 个答案:

答案 0 :(得分:2)

您可以使用strtotime()完成所有操作,但是您必须记住,当strtotime看到/正斜杠作为分隔符时,/会采用美国日期格式。 因此,在使用$ s1之前,您需要将-转换为$s1=date('d/M/Y', strtotime('+1 day')); echo $s1.PHP_EOL; // change date format as strtotime assumes USA dates $date = strtotime( '+1 day', strtotime( str_replace('/','-',$s1) ) ); echo date('d/M/Y', $date); ,以便假定正在使用合理的数据格式。

27/Aug/2014
28/Aug/2014

在2014年8月26日运行时,结果将是

{{1}}

答案 1 :(得分:1)

最好的方式(使用strtotime):

$tomorrow     = strtotime('+1 day');
$twoDaysHence = strtotime('+1 day', $tomorrow);

echo date('d/M/Y', $tomorrow);
echo date('d/M/Y', $twoDaysHence);

换句话说,将日期变量保留为strtotime返回的UNIX时间戳形式,直到您需要显示它们为止。因为您可以使用此格式直接进行计算。将格式化为日期字符串后,您必须先将它们转换回可延展的形式。 strtotime并不会自动识别格式d/M/Y,因此这样做会更加困难。在这种情况下你应该使用DateTime

$tomorrow  = date('d/M/Y', strtotime('+1 day'));
$timestamp = DateTime::createFromFormat('d/M/Y', $tomorrow);
$timestamp->modify('+1 day');
echo $timestamp->format('d/M/Y');

答案 2 :(得分:0)

$s1=date('d/M/Y', strtotime('+1 day'));
echo $s1; echo "<br/>";
$date = strtotime(strtotime($s1). ' + 2 days');
$s2 = date('d/M/Y', $date);
echo $s2;

现在已经编辑过!!检查一下!

答案 3 :(得分:0)

您可以使用以下内容:

$newvariable = strtotime ('+2 day' , $s1);

答案 4 :(得分:0)

这是一个非常简单的部分

$ s1 =日期(&#39; d / M / Y&#39;,strtotime(&#39; +2天&#39;));

echo $ s1;

如果你想要,那么在另一个变量

中复制$ s1的值

答案 5 :(得分:0)

function date_addDate($text, $da=0, $ma=0, $ya=0, $ha=0)
{
    $h=date('H',strtotime($text));
    $d=date('d',strtotime($text));
    $m=date('m',strtotime($text));
    $y=date('Y',strtotime($text));
    $fromTime =date("Y-m-d H:i:s", mktime($h+$ha, 0, 0, $m+$ma, $d+$da, $y+$ya));
    return $fromTime;
}

$date = date("Y-m-d H:i:s");
// $da days
// $ma months
// $ya years
// $ha hours
echo date_addDate($date, $da=0, $ma=0, $ya=0, $ha=0);

//输出:当前日期

echo date_addDate($date, $da=2, $ma=0, $ya=0, $ha=0);

// out put:如你所愿 试试这个

答案 6 :(得分:0)

如何使用DateTime

$d1 = new DateTime(date('Y-m-d'));
$d1->format('d/m/Y'); // 26/08/2014
$d1->modify('+1 day');
$d1->format('d/m/Y'); // 27/08/2014