在PHP中更改对象数组的属性

3

你好,我需要帮助格式化日期,使其在客户端到达之前得到处理。基本上,在从数据库获取值后,我想在进入程序的客户端之前格式化我的日期,就像我在这里所做的一样。

public function filterDataCal(Request $request) {

      $filtered_table = Method::leftJoin('users', 'users.id', '=', 'methods.created_by')
      ->leftJoin('roles', 'roles.id', '=', 'users.role_id')
      ->leftJoin('types', 'types.id', '=', 'methods.type_id')
      ->where('type_id', '=', $request->filters['type_id'])
      ->get([ 'users.username', 'users.id AS users_id', 'methods.*', 'methods.id AS method_id', 'methods.name AS method_name', 'roles.id AS role_id', 'roles.name AS role_name',
      'types.id AS type_id_typetable', 'types.name AS type_name']);
      if($filtered_table) {
        // for ($i=0; $i < sizeof($filtered_table); $i++){
        //
        //   // foreach ($filtered_table as $value[i]) {
        //   //   $value[i]->created_at->format("m/d/Y h:i A");
        //   // }
        // }
        foreach($filtered_table as $data) {
          $data->created_at = $data->created_at->format('m/d/y h:i A');
        }
        return $filtered_table;
      } else {
        return "";
      }
    }

我不确定如何改变从数据库中获取的日期格式所需的语法,因此我进行了foreach遍历,然后使用以下语法:$data->created_at = $data->created_at->format('m/d/y h:i A'); 但是,它无法实现,您能帮我更改该属性(created_at)为另一种格式吗?也许我的语法出了问题,或者可能有不同的方法。谢谢。
3个回答

1

语法没有问题。您只需打印日期,而不是返回集合。

foreach($filtered_table as $data) {
    echo  $data->created_at->format('m/d/y h:i A');
 }

如果需要在返回集合时自定义格式,您可以在模型上设置$dateFormat属性。请参见文档中的日期变换器


有没有一种方法可以仅从数据库中获取日期,而不是仅用于存储日期?顺便说一句,我想编辑属性本身$data->created_at,然后返回对象$filtered_table的数组。 - user3606724
$filtered_table将根据模型中设置的属性返回其属性,并且默认情况下时间戳格式为'Y-m-d H:i:s',如果要自定义格式,可以在您的模型上设置$dateFormat属性。 - Sanzeeb Aryal

0
你需要返回 $data->created_at 而不是 $filtered_table
让我告诉你原因,你格式化了日期并将其存储到名为 $data->created_at 的变量中,但你返回的是 $filtered_table ,它实际上是原始日期(你没有进行格式化)。
希望对你有所帮助 :)

但我需要整个$filtered_table被返回。我只需要格式化那个特定的属性$date->created_at,然后仍然返回整个对象数组。 - user3606724
你需要在 Blade 模板中再次运行 foreach 循环,对吧?为什么不在那里格式化日期呢? - MD. Atiqur Rahman
我尝试了你的建议,但是我又回到了jquery渲染,似乎我无法使用php格式,也无法从jquery渲染中传递变量。 - user3606724

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接