生成并存储今天的日期+ 11个月和+ 1年

时间:2013-09-12 15:42:48

标签: php mysql date

我需要在php中生成一些日期,然后存储在MySQL数据库中。

今天的日期,今天的日期+ 1年,今天的日期+11个月,今天的日期+ 364天

即:2013年9月12日,2014年9月12日,2014年8月12日,2014年9月11日

最好的方法是什么?

我可以从今天开始约会:

function zen_date_created_stat($raw_date) {
    if ($raw_date == '') return false;
    $year = substr($raw_date, 2, 2);
    $month = (int)substr($raw_date, 4, 2);
    $day = (int)substr($raw_date, 6, 2);
    return date(DATE_FORMAT, mktime(0, 0, 0, $month, $day, $year));
}
$date_installed = date("d M y");

到目前为止,我没有得到其他日期,只是一堆错误。

4 个答案:

答案 0 :(得分:1)

看看:strtotime。从示例:

<?php
echo strtotime("now"), "\n";
echo strtotime("10 September 2000"), "\n";
echo strtotime("+1 day"), "\n";
echo strtotime("+1 week"), "\n";
echo strtotime("+1 week 2 days 4 hours 2 seconds"), "\n";
echo strtotime("next Thursday"), "\n";
echo strtotime("last Monday"), "\n";
?>

答案 1 :(得分:1)

在PHP中修改日期的两种常用方法:

注意:此答案有意提升意识和RTM。

答案 2 :(得分:1)

strtotime可能是你最好的选择:

$today = strtotime("now");
$next_year = strtotime("+1 year");
$eleven_months = strtotime("+11 months");
$many_days = strtotime("+364 days");
// personally I'd recommend "+1 year -1 day" to account for leap years

答案 3 :(得分:0)

如果是我,我会使用strtotime()

strtotime()有两个参数。第一个参数是一个表示日期或操作的字符串(例如+11个月)。第二个是可选的,表示执行操作的基本时间戳。如果您不提供第二个参数,则该函数使用NOW作为默认时间。

<?php
   $todays_date = strtotime("today");
   $tomorrows_date = strtotime("+1 day"); 
   $delta_eleven = strtotime("+11 months");
   $delta_year = strtotime("+1 year");
   $delta_364 = strtotime("+364 days");

   //the values you have above are TIMESTAMPS (the number of seconds since January 1 1970 00:00:00 UTC)
   //if you want dates, you can convert as follows

   $today = date("m/d/Y", $todays_date);
   $tomorrow = date("m/d/Y", $tomorrows_date);
   $plus_eleven = date("m/d/Y", $delta_eleven);
   $plus_year = date("m/d/Y", $delta_year);
   $plus_364 = date("m/d/Y", $delta_364);

   echo $today . " " . $tomorrow . " " . $plus_eleven . " " . $plus_year . " " . $plus_364;
?>