Laravel - 如何将 return 国定假日以特定格式发送至 json
Laravel - How to return National Holidays in a specific format before sending to json
在我的Laravel-5.8,我按照json的要求回国:
控制器:
$nationalholidays = HrHolidayDate::select('holiday_date')
->whereYear('created_at', '=', date('Y'))
->get()
->map(function ($nationalholiday) {
return DateTime::createFromFormat('Y-m-d h:i:s', $nationalholiday->holiday_date)
->format('Y-m-d');
});
return response()->json([
'nationalholidays' => $nationalholidays,
]);
在视图blade中,我有console.log(nationalholidays);如:
创建:770 (2) [“2021-03-24”,“2021-07-08”]0:“2021-03-24”1:“2021-07-08”长度:2__proto__:数组(0)
如何把它改成这样:
natDays = [
[1, 26], [2, 6], [3, 17],
[4, 27], [5, 25], [6, 6],
[7, 4], [8, 17], [9, 7],
[10, 1], [11, 22], [12, 12]
];
所以它将由逗号分隔的日和月组成?
我想在 jQuery-UI 日期选择器中使用 reqult,如下所示:
function nationalDays(date) {
for (i = 0; i < natDays.length; i++) {
if (date.getMonth() == natDays[i][0] - 1
&& date.getDate() == natDays[i][1]) {
return [false, natDays[i][2] + '_day'];
}
}
return [true, ''];
}
您已经尝试过一次更改格式。
->map(function ($nationalholiday) {
return DateTime::createFromFormat('Y-m-d h:i:s', $nationalholiday->holiday_date)
->format('Y-m-d');
});
所以您可以根据自己的喜好再次更改它。
->map(function ($nationalholiday) {
return [
$nationalholiday->holiday_date->month,
$nationalholiday->holiday_date->day
];
});
假设 holiday_date
是 Carbon class,如果不是,您可以将其投射到您的模型中。
// HrHolidayDate 模型
protected $casts = [
'holiday_date' => 'date'
];
如果你需要数组,那么你必须像数组一样格式化它:
$nationalholidays = HrHolidayDate::select('holiday_date')
->whereYear('created_at', '=', date('Y'))
->get()
->map(function ($nationalholiday) {
$datetime = DateTime::createFromFormat('Y-m-d h:i:s', $nationalholiday->holiday_date);
return [
$dateime->format('m'),
$dateime->format('d'),
];
});
return response()->json([
'nationalholidays' => $nationalholidays,
]);
你也可以成为酷孩子之一并使用碳实例:
$nationalholidays = HrHolidayDate::select('holiday_date')
->whereYear('created_at', '=', date('Y'))
->get()
->map(function ($nationalholiday) {
$datetime = Carbon::parse($nationalholiday->holiday_date);
return [
$dateime->month,
$dateime->day,
];
});
return response()->json([
'nationalholidays' => $nationalholidays,
]);
如果没有理由将 return 作为数据集,我建议 return 将响应作为普通数组:
return response()->json($nationalholidays);
在我的Laravel-5.8,我按照json的要求回国:
控制器:
$nationalholidays = HrHolidayDate::select('holiday_date')
->whereYear('created_at', '=', date('Y'))
->get()
->map(function ($nationalholiday) {
return DateTime::createFromFormat('Y-m-d h:i:s', $nationalholiday->holiday_date)
->format('Y-m-d');
});
return response()->json([
'nationalholidays' => $nationalholidays,
]);
在视图blade中,我有console.log(nationalholidays);如:
创建:770 (2) [“2021-03-24”,“2021-07-08”]0:“2021-03-24”1:“2021-07-08”长度:2__proto__:数组(0)
如何把它改成这样:
natDays = [
[1, 26], [2, 6], [3, 17],
[4, 27], [5, 25], [6, 6],
[7, 4], [8, 17], [9, 7],
[10, 1], [11, 22], [12, 12]
];
所以它将由逗号分隔的日和月组成?
我想在 jQuery-UI 日期选择器中使用 reqult,如下所示:
function nationalDays(date) {
for (i = 0; i < natDays.length; i++) {
if (date.getMonth() == natDays[i][0] - 1
&& date.getDate() == natDays[i][1]) {
return [false, natDays[i][2] + '_day'];
}
}
return [true, ''];
}
您已经尝试过一次更改格式。
->map(function ($nationalholiday) {
return DateTime::createFromFormat('Y-m-d h:i:s', $nationalholiday->holiday_date)
->format('Y-m-d');
});
所以您可以根据自己的喜好再次更改它。
->map(function ($nationalholiday) {
return [
$nationalholiday->holiday_date->month,
$nationalholiday->holiday_date->day
];
});
假设 holiday_date
是 Carbon class,如果不是,您可以将其投射到您的模型中。
// HrHolidayDate 模型
protected $casts = [
'holiday_date' => 'date'
];
如果你需要数组,那么你必须像数组一样格式化它:
$nationalholidays = HrHolidayDate::select('holiday_date')
->whereYear('created_at', '=', date('Y'))
->get()
->map(function ($nationalholiday) {
$datetime = DateTime::createFromFormat('Y-m-d h:i:s', $nationalholiday->holiday_date);
return [
$dateime->format('m'),
$dateime->format('d'),
];
});
return response()->json([
'nationalholidays' => $nationalholidays,
]);
你也可以成为酷孩子之一并使用碳实例:
$nationalholidays = HrHolidayDate::select('holiday_date')
->whereYear('created_at', '=', date('Y'))
->get()
->map(function ($nationalholiday) {
$datetime = Carbon::parse($nationalholiday->holiday_date);
return [
$dateime->month,
$dateime->day,
];
});
return response()->json([
'nationalholidays' => $nationalholidays,
]);
如果没有理由将 return 作为数据集,我建议 return 将响应作为普通数组:
return response()->json($nationalholidays);