0

我需要在 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

4 回答 4

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
于 2013-09-12T15:45:17.493 回答
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";
?>
于 2013-09-12T15:44:35.193 回答
1

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

注意:这个答案是故意笼统的,以提高意识和 RTM。

于 2013-09-12T15:45:06.407 回答
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;
?>
于 2013-09-12T16:00:12.190 回答