Javascript 如何在laravel的morris图表中仅显示最后3个月
我在我的项目中一直面临一个问题。我想知道我的莫里斯图表中最近3个月的活动情况。但我不知道如何做到这一点 以下是我得到的: 在这方面,我得到了很多次八月。我只想要三个月:八月,九月,十月 以下是我尝试过的:Javascript 如何在laravel的morris图表中仅显示最后3个月,javascript,php,laravel,morris.js,Javascript,Php,Laravel,Morris.js,我在我的项目中一直面临一个问题。我想知道我的莫里斯图表中最近3个月的活动情况。但我不知道如何做到这一点 以下是我得到的: 在这方面,我得到了很多次八月。我只想要三个月:八月,九月,十月 以下是我尝试过的: public function sales() { $company = Auth::guard('company')->user()->id; $date = Carbon::now(); $currentmonth = Order::where([['
public function sales() {
$company = Auth::guard('company')->user()->id;
$date = Carbon::now();
$currentmonth = Order::where([['company_id', $company], ['status', '<>', 0]])->whereDate('created_at', '>=', $date->copy()->startOfMonth())->whereDate('created_at', '<=', $date->copy()->endOfMonth())->get();
$lastmonth = Order::where([['company_id', $company], ['status', '<>', 0]])->whereDate('created_at', '>=', $date->copy()->startOfMonth()->subMonth())->whereDate('created_at', '<=', $date->copy()->endOfMonth()->subMonth())->get();
$anothermonth = Order::where([['company_id', $company], ['status', '<>', 0]])->whereDate('created_at', '>=', $date->copy()->startOfMonth()->subMonths(2))->whereDate('created_at', '<=', $date->copy()->endOfMonth()->subMonths(2))->get();
$data = [
[ 'year'=> $date->year . '-' . $date->copy()->startOfMonth()->subMonths(2)->format('m'), 'value'=> $anothermonth->sum('price') ],
[ 'year'=> $date->year . '-' . $date->copy()->startOfMonth()->subMonth()->format('m'), 'value'=> $lastmonth->sum('price') ],
[ 'year'=> $date->year . '-' . $date->copy()->format('m'), 'value'=> $currentmonth->sum('price') ],
];
$json = json_encode($data);
return view('company.dashboard.sales', compact('json'));
}
公共功能销售(){
$company=Auth::guard('company')->user()->id;
$date=Carbon::now();
$currentmount=Order::where([['company\u id',$company],'status','',0]])->where date('created\u at','>=',$date->copy()->copy()->where date('created\u','>=',$date->copy()->copy()->startofmount()->subMonth(2))->where date('created_at','将Morris区域的parseTime
参数设置为false
:
parseTime: false
并将xLabelFormat
设置如下:
xLabelFormat: function (x) {
return months[parseInt(x.label.slice(5))];
}
请尝试以下代码段:
var数据=[
{年份:'2018-08',值:0},
{年份:'2018-09',价值:5},
{年份:'2018-10',价值:10}];
风险值月份=[“一月”、“二月”、“三月”、“四月”、“五月”、“六月”、“七月”、“八月”、“九月”、“十月”、“十一月”、“十二月”];
var lineGraph=莫里斯面积({
要素:'收入表',
xkey:‘年’,
ykeys:['value'],
线条颜色:['#75a5c1'],
隐藏:“自动”,
标签:[“销售”],
数据:数据,
调整大小:对,
XLA语言:90,
时间:错,
xLabelFormat:函数(x){
返回月份[parseInt(x.label.slice(5))];
}
});
$('svg')。高度(350);
如果我将解析时间设置为false,则它不会显示月份名称。当我添加代码时,它会显示数据2018-08格式。它只显示9月、10月。8月未显示。感谢您的帮助。是的,8月在那里。它只是隐藏。您可以尝试像我的代码片段中一样设置xLabelAngle
以旋转标签。您还可以设置svg高度如果x标签仍然存在问题,请将其设置为适当的值。非常感谢您的帮助。
xLabelFormat: function (x) {
return months[parseInt(x.label.slice(5))];
}