本文实例讲述了yii框架结合charjs统计上一年与当前年数据的方法。分享给大家供大家参考,具体如下:
理论上是1年有12个月,但实际上却是去年12个月已经过了,是完整的12个月,今年的12个月还没过,不完整,所以需要补齐
public static function getYearOrderCharData() {
// 获取当前年
$months = range(1, 12);
$currentYear = date('Y');
$lastYear = date('Y', strtotime("-1 year"));
// 所有订单
$allOrderData = self::find()
->select(['FROM_UNIXTIME(create_at,"%Y-%m") as char_time', 'COUNT(id) as total_order', 'SUM(order_amount) as total_order_amount'])
->where(['>=', 'FROM_UNIXTIME(create_at,"%Y")', $lastYear])
->groupBy('char_time')
->all();
// 已支付订单
$allPayOrderData = self::find()
->select(['FROM_UNIXTIME(create_at,"%Y-%m") as char_time', 'COUNT(id) as total_order', 'SUM(pay_amount) as total_order_amount'])
->where(['>=', 'FROM_UNIXTIME(create_at,"%Y")', $lastYear])
->andWhere(['pay_status' => 2])
->groupBy('char_time')
->all();
$yearCountTitle = Yii::t('backend', 'year_order_count_title', ['last_year' => $lastYear, 'current_year' => $currentYear]);
$yearAmountTitle = Yii::t('backend', 'year_order_amount_title', ['last_year' => $lastYear, 'current_year' => $currentYear]);
$yearPayCountTitle = Yii::t('backend', 'year_order_pay_count_title', ['last_year' => $lastYear, 'current_year' => $currentYear]);
$yearPayAmountTitle = Yii::t('backend', 'year_order_pay_amount_title', ['last_year' => $lastYear, 'current_year' => $currentYear]);
$labels = [];
// 所有订单
$lastYearCounts = []; // 前一年月订单总量
$lastYearAmounts = []; // 前一年月订单总额
$currentYearCounts = []; // 当前年月订单总量
$currentYearAmounts = []; // 当前年月订单额
$allOrderDataArr = [];
foreach($allOrderData as $allKey => $allVal) {
$allOrderDataArr[$allVal->char_time]['char_time'] = $allVal->char_time;
$allOrderDataArr[$allVal->char_time]['total_order'] = $allVal->total_order;
$allOrderDataArr[$allVal->char_time]['total_order_amount'] = number_format($allVal->total_order_amount / 100, 2, '.', '');
}
// 已支付订单
$lastYearPayCounts = []; // 前一年月支付订单总量
$lastYearPayAmounts = []; // 前一年月支付订单总额
$currentYearPayCounts = []; // 当前年月支付订单总量
$currentYearPayAmounts = []; // 当前年月支付订单额
$allPayOrderDataArr = [];
foreach($allPayOrderData as $payKey => $payVal) {
$allPayOrderDataArr[$payVal->char_time]['char_time'] = $payVal->char_time;
$allPayOrderDataArr[$payVal->char_time]['total_order'] = $payVal->total_order;
$allPayOrderDataArr[$payVal->char_time]['total_order_amount'] = number_format($payVal->total_order_amount / 100, 2, '.', '');
}
foreach($months as $key => $val) {
$label = $val . Yii::t('backend', 'month');
$labels[] = $label;
$theMonth = strlen($val) == 2 "htmlcode">
// 订单总量对比
var yearOrderCountChartCanvas = $('#yearOrderCountChart').get(0).getContext('2d')
var yearOrderCountChartData = {
labels : <"htmlcode">
public $char_time; // 按时间统计
public $total_order; // 所有订单
public $total_order_amount; // 所有订单总额
public $total_pay_order; // 支付订单
public $total_pay_amount; // 支付订单总额
public $total_order_pay_amount; // 支付总额
更多关于Yii相关内容感兴趣的读者可查看本站专题:《Yii框架入门及常用技巧总结》、《php优秀开发框架总结》、《smarty模板入门基础教程》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件!
如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
白云城资源网 Copyright www.dyhadc.com
暂无“yii框架结合charjs统计上一年与当前年数据的方法示例”评论...
P70系列延期,华为新旗舰将在下月发布
3月20日消息,近期博主@数码闲聊站 透露,原定三月份发布的华为新旗舰P70系列延期发布,预计4月份上市。
而博主@定焦数码 爆料,华为的P70系列在定位上已经超过了Mate60,成为了重要的旗舰系列之一。它肩负着重返影像领域顶尖的使命。那么这次P70会带来哪些令人惊艳的创新呢?
根据目前爆料的消息来看,华为P70系列将推出三个版本,其中P70和P70 Pro采用了三角形的摄像头模组设计,而P70 Art则采用了与上一代P60 Art相似的不规则形状设计。这样的外观是否好看见仁见智,但辨识度绝对拉满。
更新日志
2025年11月13日
2025年11月13日
- 小骆驼-《草原狼2(蓝光CD)》[原抓WAV+CUE]
- 群星《欢迎来到我身边 电影原声专辑》[320K/MP3][105.02MB]
- 群星《欢迎来到我身边 电影原声专辑》[FLAC/分轨][480.9MB]
- 雷婷《梦里蓝天HQⅡ》 2023头版限量编号低速原抓[WAV+CUE][463M]
- 群星《2024好听新歌42》AI调整音效【WAV分轨】
- 王思雨-《思念陪着鸿雁飞》WAV
- 王思雨《喜马拉雅HQ》头版限量编号[WAV+CUE]
- 李健《无时无刻》[WAV+CUE][590M]
- 陈奕迅《酝酿》[WAV分轨][502M]
- 卓依婷《化蝶》2CD[WAV+CUE][1.1G]
- 群星《吉他王(黑胶CD)》[WAV+CUE]
- 齐秦《穿乐(穿越)》[WAV+CUE]
- 发烧珍品《数位CD音响测试-动向效果(九)》【WAV+CUE】
- 邝美云《邝美云精装歌集》[DSF][1.6G]
- 吕方《爱一回伤一回》[WAV+CUE][454M]