如何将JavaScript日期转换为Carbon日期?

7

我需要将JavaScript日期转换为Carbon日期。我想要按月份和年份进行筛选记录。

 $date  = Javascript Date to Carbon Date? 
 $logs =  $logs->whereBetween('created_at', [$date->startOfMonth(), $date->endOfMonth()]); 

提前致谢。


你能提供样本输入数据和任何你尝试过的可能出现的错误信息吗?请编辑你的问题并包含这些信息。 - Nico Haase
3个回答

7
很难在没有JS日期输出的情况下猜测,但你可以尝试使用以下内容:
Carbon::parse($date);

如果失败,您需要格式化JS日期,然后使用。
Carbon::createFromFormat('Y-m-d H:i:s', $date);

2019年1月21日星期一 16:07:31 GMT+0530(印度标准时间)JS日期格式 - Neha
以上代码出现错误 "DateTime::__construct(): Failed to parse time string (stpm31 Jpm1 01 2011 00:00:00 16JanIST+0530 (012108pm st31pm121pmMon, 21 Jan 2019 16:08:37 +053021 IST0801Asia/Kolkata)) at position 0 (s): The timezone could not be found in the database" - Neha
这是JS的输出吗?出了什么错误?你在控制器中尝试使用dd()了吗?有什么输出? - lovis91
是的,我尝试添加dd。错误是在位置0(s)处解析时间字符串失败(stpm31 Jpm1 01 2011 00:00:00 16JanIST+0530 (012108pm st31pm121pmMon,21 Jan 2019 16:08:37 +053021 IST0801Asia/Kolkata))。 - Neha

1
您可以使用这种方法,其中new Date()类似于Sat Aug 24 2019 20:36:26 GMT+0600(孟加拉国标准时间)
首先使用以下JavaScript函数来解析new Date()
   function datefilter(date){
            let month = date.getMonth();
            let year = date.getFullYear();
            let day = date.getDate();
            return day+'-'+month + '-' + year;
    }
    datafilter(new Date());

输出将是"24-7-2019",然后使用Carbon createFromFormate。
Carbon::createFromFormat('d-m-Y', $data['enddate']);

我猜输出将保持不变:"24-7-2019"

1
首先将 js Date 转换为 d-m-y 或 y-m-d 的格式。
var date = new Date();let current_datetime = new Date()
let formatted_date = current_datetime.getDate() + "-" + (current_datetime.getMonth() + 1) + "-" +current_datetime.getFullYear();

现在将日期转换为Carbon日期:
    Carbon\Carbon::createFromFormat('d-m-Y', $date);
or 
    Carbon\Carbon::createFromFormat('Y-m-d', $date);

// 在此处输入您的格式化日期格式 createFromFormat(formatted_date_format, $date);


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