Laravel如何将波斯日期转换为日期时间格式

3

我在视图中使用了一个波斯日期选择器

<div class="input-group-addon" data-mddatetimepicker="true" data-targetselector="#exampleInput1" data-trigger="click" data-enabletimepicker="true">
    <span class="glyphicon glyphicon-calendar"></span>
</div>
<input type="text" class="form-control" id="exampleInput1" name="start_at"/>

我有一个表格中的一列是日期时间格式。

当我将其发送到控制器并使用dd($request['start_at']);时,它返回"۱۳۹۷/۰۷/۲۳ ۰۰:۰۰:۰۰"

如何将其转换为日期时间格式以保存在数据库中?


2个回答

1

介绍

在 Laravel 中,与日期或时间相关的所有操作都应使用 Carbon 完成。 Carbon 是一个 PHP 库/扩展,用于处理日期和时间格式。您可以在这里找到其文档。由于 Carbon 已经包含在 Laravel 中,所以请在这里查看 API。

完成任务

你需要做的是,在此处传递你的时区:

$date = Carbon::now($start_at)->locale('UTC+6');

假设波斯时区为UTC+6,上面的代码片段将把您的时间转换为Carbon时间。 完成后,您可以使用以下方法访问您的时间戳。
$date->timestamp; 

或者您的DateTimeString使用


$date->toDateTimeString(); 

请注意:我对波斯的时间设置并不完全确定。从快速调查中可以假设它是UTC+6。您还可以在locale()函数中放入一个字符串。
$date = Carbon::now()->locale('fr_FR');

如果这对你来说更容易!

快速链接 URL:


我捕获了这个错误 未知或错误的时区 (1397/07/17 00:00:00) - Reza sh
1
请使用setTimezone()函数而不是locale()函数。 - Tstar
不行,我遇到了这个错误:未知或错误的时区(UTC+6)。 - Reza sh
你是否在时区周围设置了引号? - Tstar
波斯的字符串表示中是哪个时区?那么,fr_FR 在波斯语中的等效表示是什么? - Tstar
Carbon无法将Jalali(Shamsi)转换为其他日期格式。您应该使用@Shaielndra-Gupta建议的其他软件包。 - Kibo

1

1
如果已经安装了一个更强大的包,为什么他还要添加一个包呢? - Tstar
不知道Carbon类提供了这个功能,所以我建议他感谢他扩展了我的知识。 - Shailendra Gupta
那么也许您可以编辑您的帖子,以确保您的解决方案有效,但也许有更好的方法来做到这一点? - Tstar

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