strtotime转换:只有日期

时间:2013-12-04 05:30:27

标签: php date strtotime iso8601

所以我正在尝试将一个日期存储在一个字符串中,并将其增加一周9次。 (我想要10个日期)。

$start_date的值最初是:2013-12-04 12:00,但是当我增加它时,它变为:

606813 
then: 
1211613
1816413 and so on.

我知道格式化会发生变化,但我不明白为什么我会得到我的结果。第二个返回的数字似乎意味着:

12(月)11(日)6(一些未知的东西)13(年)

这将是一周,但第一和第三个返回的数字根本没有意义,除非我不知道一年中的第60个月和第18个月,他们都错过了一个时间跟着约会一起去。

这是我第一次尝试使用strtotime()所以我不确定我在做什么,但我已经尝试过这个,我可以使用你能提供的任何帮助。

$start_date = $row["start_time"];

for ( $i = 1; $i<9; $i++) {
    $start_date= strtotime('+1 week', $start_date);
    $arr = array('id' => $row["course_id"],
        'title' => $row["course_name"],
        'start' => $start_date,
        'allDay' => false
    );
    array_push($result, $arr);
}

2 个答案:

答案 0 :(得分:0)

要使用strtotime增加时间,我必须先在任何增量之前转换开始日期,否则它会认为$ startdate是“epoch”并在70年代创建日期。

              //changed here
$start_date = strtotime($row["start_time"]);

for ( $i = 1; $i<9; $i++){
    $start_date= strtotime('+1 week', $start_date);
    $arr = array('id' => $row["course_id"],
                 'title' => $row["course_name"],
                 'start' => $start_date,
                 'allDay' => false
                 );
            array_push($result, $arr);
        }

答案 1 :(得分:0)

strtotime返回int,第二个参数(如果使用)应该是有效的时间戳。此外,如果您想获取日期字符串,可以使用date函数

$start_date = strtotime('2013-12-04 12:00');

for ( $i = 1; $i<9; $i++){
    $start_date= strtotime('+1 week', $start_date);
    $arr = array('id' => $row["course_id"],
             'title' => $row["course_name"],
             'start' => date('Y-m-d h:i:s',$start_date),
             'allDay' => false
             );
        array_push($result, $arr);
    }
相关问题