Javascript 如何在laravel的morris图表中仅显示最后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([['

我在我的项目中一直面临一个问题。我想知道我的莫里斯图表中最近3个月的活动情况。但我不知道如何做到这一点

以下是我得到的:

在这方面,我得到了很多次八月。我只想要三个月:八月,九月,十月

以下是我尝试过的:

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))];
 }