0
I have the following code
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class DatesController extends Controller
{
//Função que calcula o inicio e o fim da semana a partir do dia
public static function getWeekBeginEnd($day)
{
$day = strtotime($day);
//Pega o dia da semana
$number_of_day = date('w', $day);
intval($number_of_day);
//Começa a contar a semana na segunda
$number_of_day--;
//Clcula o primeiro dia da Semana
if ($number_of_day < 0) {
$begin_week = strtotime('-7 days', $day);
}
else
$begin_week = strtotime('-'.$number_of_day.' days', $day);
// Calcula o ultimo da semana
$end_week = strtotime('+7 days', $begin_week);
//Coloca os dados numa array
$week['begin'] = date('Y-m-d', $begin_week);
$week['end'] = date('Y-m-d', $end_week);
//retorna a array
return $week;
}
public function currentYear()
{
$current_year = date("Y");
return $current_year;
}
public function currentMonth()
{
$current_month = date("m");
return $current_month;
}
public function yearBegin($current_year = currentYear())
{
$year_begin = $current_year."-01-01";
return $year_begin;
}
public function yearEnd($current_year = currentYear())
{
$year_end = $current_year."-12-31";
return $year_end;
}
public function thisMonthBegin($current_year = currentYear(), $current_month = currentMonth())
{
$this_month_begin = $current_year."-".$current_month."-01";
}
public function nextMonth($current_month = currentMonth())
{
$next_month = $current_month + 1;
if (strlen($next_month) == 1) {
$next_month = "0".$next_month;
}
return $next_month;
}
public function nextMonthBegin($current_year = currentYear(), $next_month = nextMonth())
{
$next_month_begin = $current_year."-".$next_month."-01";
return $next_month_begin;
}
public function now()
{
$now = date("Y-m-d H:i");
return $now;
}
public function today()
{
$today = date("Y-m-d");
return $today;
}
public function todayWithoutSeparators()
{
$todaywithoutseparators = date("Ymd");
return $todaywithoutseparators;
}
public function todayTimeStamp($today = today())
{
$today_timestamp = strtotime($today);
return $today_timestamp;
}
public function yesterdayTimeStamp($today_timestamp = todayTimeStamp())
{
$yesterday_timestamp = strtotime("-1 day", $today_timestamp);
return $yesterday_timestamp;
}
public function yesterday($yesterday_timestamp = yesterdayTimeStamp())
{
$yesterday = date("Y-m-d", $yesterday_timestamp);
return $yesterday;
}
public function tomorrowTimestamp($today_timestamp = todayTimeStamp())
{
$tomorrow_timestamp = strtotime("+1 day", $today_timestamp);
return $tomorrow_timestamp;
}
public function tomorrow($tomorrow_timestamp = tomorrowTimestamp())
{
$tomorrow = date("Y-m-d", $tomorrow_timestamp);
return $tomorrow;
}
public function aftomorrowTimestamp($today_timestamp = todayTimeStamp())
{
$aftomorrow_timestamp = strtotime("+2 day", $today_timestamp);
return $aftomorrow_timestamp;
}
public function aftomorrow($aftomorrow_timestamp = aftomorrowTimestamp())
{
$aftomorrow = date("Y-m-d", $aftomorrow_timestamp);
return $aftomorrow;
}
public function twoDaysAgoTimestamp($today_timestamp = todayTimeStamp())
{
$two_days_ago_timestamp = strtotime("+3 day", $today_timestamp);
return $two_days_ago_timestamp;
}
public function twoDaysAgo($two_days_ago_timestamp = twoDaysAgoTimestamp())
{
$two_days_ago = date("Y-m-d", $two_days_ago_timestamp);
return $two_days_ago;
}
}
I’m getting the following error in the last method:
Constant Expression contains invalid Operations
How to correct ?
Att:
On the basis of the answer given by my colleague below, I have decided in this way :
public static function currentYear()
{
$current_year = date("Y");
return $current_year;
}
public static function currentMonth()
{
$current_month = date("m");
return $current_month;
}
public static function yearBegin()
{
$current_year = $this->currentYear();
$year_begin = $current_year."-01-01";
return $year_begin;
}
You cannot set a function as the default value of a parameter.
– rray
@rray and what should I do to pass the result to the next method ?
– Yuri Foxx