首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何获取两个日期之间的所有日期并插入到数据库中?

如何获取两个日期之间的所有日期并插入到数据库中?
EN

Stack Overflow用户
提问于 2018-06-21 05:05:20
回答 3查看 223关注 0票数 0

我正在尝试获取两个日期之间的所有日期,并将它们全部插入到一个表中。我怎样才能做到这一点呢?

    //current date
    $currentDate = date('Y-m-d');

    //find next monday from current date
    $nextMonday = date('Y-m-d', strtotime('next monday', strtotime($currentDate)));   

    //get last day of current year
    $yearEnd = date('Y-m-d', strtotime('12/31'));

   //get all dates between nextMonday and yearend
   [...]

 foreach ($period as $dateCreated) {
   //insert the dates in db
    $stmt = $conn->prepare("INSERT INTO user_schedule (userId,dateCreated) VALUES (?,?)");
    $stmt ->bind_param('is',$userid,$dateCreated);
    $stmt ->execute();
    $stmt ->close();
 }
EN

回答 3

Stack Overflow用户

发布于 2018-06-21 05:10:12

function get_dates_through_range($start, $end, $format = 'Y-m-d')
{
    $range = array();
    $interval = new DateInterval('P1D');

    $range_end = new DateTime($end);
    $range_end->add($interval);

    $period = new DatePeriod(new DateTime($start), $interval, $range_end);

    foreach($period as $date) {
        $range[] = $date->format($format);
    }

    return $range;
}



$start = '2010-01-01';
$end = '2010-01-05';

$range = get_dates_through_range($start, $end);
// [2010-01-01, 2010-01-02, 2010-01-03 ...]    
票数 0
EN

Stack Overflow用户

发布于 2018-06-21 05:23:46

$firstDay = mktime(0, 0, 0, $rep_month, 1, $rep_year);

$lastDay = mktime(0, 0, 0, ($rep_month+1), 0, $rep_year);

使用上面的代码,并根据您的系统进行修改,您将获得最好的结果。

票数 0
EN

Stack Overflow用户

发布于 2018-06-21 06:01:36

这对我来说是完美的,它的效果就像一个护身符。非常快速和简单。

  //current date
    $currentDate = date('Y-m-d');

    //find next monday from current date
    $nextMonday = date('Y-m-d', strtotime('next monday', strtotime($currentDate)));   

    //get last day of current year
    $yearEnd = date('Y-m-d', strtotime('12/31'));

 //get all dates between nextMonday and yearEnd
    $period = new DatePeriod(new DateTime($nextMonday), new DateInterval('P1D'), new DateTime($yearEnd .' +1 day'));

    //iterate over each date
    foreach ($period as $date) {

      //format date
      $dateCreated = $dates[] = $date->format("Y-m-d");

   //insert the dates in db
    $stmt = $conn->prepare("INSERT INTO user_schedule (userId,dateCreated) VALUES (?,?)");
    $stmt ->bind_param('is',$userid,$dateCreated);
    $stmt ->execute();
    $stmt ->close();
 }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50957009

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档