PHP获取今日、本周、本月、今年的开始日期和结束日期

/**
  * 今天开始的Y-m-d H:i:s
  *
  * @return string
  */
public static function beginToday()
{
    return date('Y-m-d').' 00:00:00';
}

/**
  * 今天结束的Y-m-d H:i:s
  *
  * @return string
  */
public static function endToday()
{
    return date('Y-m-d').' 23:59:59';
}

/**
  * 本周的开始日期
  * 
  * @param bool $His     是否展示时分秒 默认true
  *
  * @return false|string
  */
public static function beginWeek($His = true)
{
    $timestamp = mktime(0, 0, 0, date('m'), date('d') - date('w') + 1, date('Y'));
    return $His ? date('Y-m-d H:i:s', $timestamp) : date('Y-m-d', $timestamp);
}

/**
  * 本周的结束日期
  *
  * @param bool $His     是否展示时分秒 默认true
  *
  * @return false|string
  */
public static function endWeek($His = true)
{
    $timestamp = mktime(23, 59, 59, date('m'), date('d') - date('w') + 7, date('Y'));
    return $His ? date('Y-m-d H:i:s', $timestamp) : date('Y-m-d', $timestamp);
}

/**
  * 本月的开始日期
  * 
  * @param bool $His     是否展示时分秒 默认true
  *
  * @return false|string
  */
public static function beginMonth($His = true)
{
    $timestamp = mktime(0, 0, 0, date('m'), 1, date('Y'));
    return $His ? date('Y-m-d H:i:s', $timestamp) : date('Y-m-d', $timestamp);
}

/**
  * 本月的结束日期
  *
  * @param bool $His     是否展示时分秒 默认true
  *
  * @return false|string
  */
public static function endMonth($His = true)
{
    $timestamp = mktime(23, 59, 59, date('m'), date('t'), date('Y'));
    return $His ? date('Y-m-d H:i:s', $timestamp) : date('Y-m-d', $timestamp);
}

/**
  * 几年的开始日期
  *
  * @param bool $His     是否展示时分秒 默认true
  *
  * @return false|string
  */
public static function beginYear($His = true)
{
    $timestamp = mktime(0, 0, 0, 1, 1, date('Y'));
    return $His ? date('Y-m-d H:i:s', $timestamp) : date('Y-m-d', $timestamp);
}

/**
  * 本月的结束日期
  *
  * @param bool $His     是否展示时分秒 默认true
  *
  * @return false|string
  */
public static function endYear($His = true)
{
    $timestamp = mktime(23, 59, 59, 12, 31, date('Y'));
    return $His ? date('Y-m-d H:i:s', $timestamp) : date('Y-m-d', $timestamp);
}

也可以可以使用Carbon包来获取开始和结束日期

Carbon::now()->startOfMonth()->toDateTimeString();

Carbon::now()->endOfMonth()->toDateTimeString();