【问题标题】:FATAL ERROR CALL TO A MEMBER FUNCTION FORMAT() ON STRING对字符串上的成员函数格式()的致命错误调用
【发布时间】:2021-05-16 12:37:54
【问题描述】:

有人可以帮助我吗?我有以下致命错误: 未捕获的错误: 在第 89 行调用字符串上的成员函数格式;

第 89 行是

    $monday->setISODate($days->format("o"),$days->format("W"));

我的功能是:

function dateToWeekPeriod($days)
{
  $monday = new DateTime();
  $monday->setISODate($days->format("o"),$days->format("W"));
  $sunday = clone $monday;
  $sunday->modify("+6 day")->setTime(23,59);

  $interval = DateInterval::createFromDateString('1 day');
  $period = new DatePeriod($monday, $interval, $sunday);
  return $period;
}

我的主要功能是:

function main()
{
    $end = new DateTime("now");
    $begin= clone $end;
    $begin->modify('-50 days')->setTime(23,59);
    echo $end->format('Y-m-d'), "\n", $begin->format('Y-m-d')."\n";
    $interval= new DateInterval('P1D');
    $daterange= new DatePeriod($begin, $interval, $end->modify("+1 day"));

    $days=array();
    foreach($daterange as $date)
    {
      $date->format('Y-m-d')."\n";
      array_push($days,$date->format('Y-m-d'));
    }
    echo "-----les dates de l'intervalle sont:-----\n";
    var_dump($days);

    $Week=array();
    $datas=array();
    $Weeks=array();
    $insertAnnee=array();
    $recupAnnee=array();
    $tabRecupAnneeDesc=array();

    foreach($days as $d)
    {
      $week = periodToDayArray(dateToWeekPeriod($d));//les jours de la semaine concernée
      $Week=array_push($Week,$week);
    }

我在这一行有一个堆栈跟踪:

$week = periodToDayArray(dateToWeekPeriod($d))

提前致谢

【问题讨论】:

  • array_push($days,$date->format('Y-m-d')); 你不能格式化已经格式化的东西。
  • ????????????请在所有大写字母上放轻松。它被认为是大喊大叫。在标题中它特别离谱。

标签: php arrays function format


【解决方案1】:

在您的主函数中,$days 是一个字符串数组。 您将此数组的一个元素(字符串)传递给dateToWeekPeriod 函数。

$monday->setISODate($days->format("o"),$days->format("W"));
$days->format("o") // not possible 

最简单的方法是在日期上保留$days

$days=array();
  foreach($daterange as $date)
  {
    array_push($days,$date);
  }

【讨论】:

  • 如果我按照你说的做,我有一个问题:我有一个包含三个字段(时区、日期和时区类型)的对象数组。
  • 我只想要这三个字段中的日期。
  • 所以我的问题是以下如何只推送一个数组中的一个字段而不是推送三个?
猜你喜欢
  • 2019-02-11
  • 1970-01-01
  • 2017-02-27
  • 2015-07-27
  • 2019-11-23
  • 2016-10-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多