<link href="//maxcdn.bootstrapcdn.com/bootstrap/4.1.1/css/bootstrap.min.css" rel="stylesheet" id="bootstrap-css">
<script src="//maxcdn.bootstrapcdn.com/bootstrap/4.1.1/js/bootstrap.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<!------ Include the above in your HEAD tag ---------->
<div class="container">
<div class="row">
<h2>Transaction data accoring to month week year</h2>
</div>
</div>
let now = new Date();
let todayStart = new Date(now.getFullYear(), now.getMonth(), now.getDate())
let todayEnd = new Date(now.getFullYear(), now.getMonth(), now.getDate() + 1)
let startMonthDate: any = new Date(now.getFullYear(), now.getMonth(), 1);
let endMonthDate: any = new Date(
now.getFullYear(),
now.getMonth() + 1,
0
);
let startWeekDay = now.getDate() - now.getDay();
let startWeekDate = new Date(
now.getFullYear(),
now.getMonth(),
startWeekDay
);
let endWeekDate = new Date(
now.getFullYear(),
now.getMonth(),
startWeekDay + 6
);
console.log(startWeekDate, endWeekDate, "?????????")
let startYearDate: any = new Date(now.getFullYear(), 0, 1);
let endYearDate: any = new Date(now.getFullYear() + 1, 0, 0);
let start_month_week = Math.ceil(
Math.floor((startMonthDate - startYearDate) / (24 * 60 * 60 * 1000)) / 7
);
let end_month_week = Math.ceil(
Math.floor((endMonthDate - startYearDate) / (24 * 60 * 60 * 1000)) / 7
);
// const [data] = await transactionModel.aggregate([
// {
// $facet: {
// '1Year': [
// {
// $match: {
// createdAt: {
// $gte: startYearDate,
// $lte: endYearDate
// }
// },
// },
// {
// $group: {
// _id: {min:{ $minute: "$createdAt" },hour:{$hour: "$createdAt"},day:{$dayOfMonth: "$createdAt"},month:{$month: "$createdAt"},year:{$year: "$createdAt"}},
// total: { $sum: '$amount' }
// }
// },
// {
// $project:{
// minutes:'$_id.min',
// hours:'$_id.hour',
// day:'$_id.day',
// month:'$_id.month',
// year:'$_id.year',
// total:1,
// _id:0
// }
// },
// {
// $sort:{
// minutes:1,
// hours:1,
// day:1,
// month:1,
// year:1,
// }
// }
// ],
// 'Month': [
// {
// $match: {
// createdAt: {
// $gte: startYearDate,
// $lte: endYearDate
// }
// },
// },
// {
// $group: {
// _id: {min:{ $minute: "$createdAt" },hour:{$hour: "$createdAt"},day:{$dayOfMonth: "$createdAt"},month:{$month: "$createdAt"},year:{$year: "$createdAt"}},
// total: { $sum: '$amount' }
// }
// },
// {
// $project:{
// minutes:'$_id.min',
// hours:'$_id.hour',
// day:'$_id.day',
// month:'$_id.month',
// year:'$_id.year',
// total:1,
// _id:0
// }
// },
// {
// $sort:{
// minutes:1,
// hours:1,
// day:1,
// month:1,
// year:1,
// }
// }
// ],
// 'Weekly': [
// {
// $match: {
// createdAt: {
// $gte: startMonthDate,
// $lte: endMonthDate
// }
// },
// },
// {
// $group: {
// _id: { $minute: "$createdAt" },
// total: { $sum: '$amount' }
// }
// },
// ],
// 'Daily': [
// {
// $match: {
// createdAt: {
// $gte: startWeekDate,
// $lte: endWeekDate
// }
// },
// },
// {
// $group: {
// _id: { $minute: "$createdAt" },
// total: { $sum: '$amount' }
// }
// },
// ]
// }
// }]);
// let monthly = Array(12).fill(0)
// let weekly = Array(5).fill(0)
// let daily = Array(7).fill(0)
// data?.Monthly.forEach((e: any, i: any) => {
// monthly[e._id - 1] = e.total
// })
// data?.Weekly.forEach((e: any, i: any) => {
// weekly[e._id - start_month_week] = e.total
// })
// data?.Daily.forEach((e: any, i: any) => {
// daily[e._id - 1] = e.total
// })