日历的PHP接口代码:

$user_id = $_SESSION['user_id'];
$year = isset($_REQUEST['tty']) ? intval($_REQUEST['tty']) : date('Y');
$month = isset($_REQUEST['ttm']) ? intval($_REQUEST['ttm']) : date('m');
//获取当前月有多少天
$days = date('t', strtotime("{$year}-{$month}-1"));
// 当前1号是星期几
$week = date('w', strtotime("{$year}-{$month}-1"));
// 实现上一月和上一年
if ($month == 1) {
$premonth = 12;
$preyear = $year - 1;
} else {
$premonth = $month - 1;
$preyear = $year;
}
// 实现下一月和下一年
if ($month == 12) {
$nextmonth = 1;
$nextyear = $year + 1;
} else {
$nextmonth = $month + 1;
$nextyear = $year;
}
$dayss = array();
for ($i = 1; $i <= $week; $i++) {
$dayss[] = '';
}
for ($i = 1; $i <= $days; $i++) {
$dayss[] = $i;
}
// 获取签到所有数据(本月中)
$start = strtotime("{$year}-{$month}-1");
$end = strtotime("{$nextyear}-{$nextmonth}-1") - 1;
$logsql = 'SELECT * FROM ' . $ecs->table('hpyer_sign_log') . " where uid={$user_id} AND add_time between {$start} AND {$end}";
$loglist = $db->getAll($logsql);
$loginfo = array();
foreach ($loglist as $v) {
$loginfo[] = intval(date('d', $v['add_time']));
} $result = array(
'code' => 1,
'data' => array(
'year' => $year,
'month' => $month,
'preyear' => $preyear,
'premonth' => $premonth,
'nextyear' => $nextyear,
'nextmonth' => $nextmonth,
'days' => $dayss,
'loginfo' => $loginfo
)
);
die($jsonr->encode($result));

HTML接口说明:

$('.riQh').on('click', function() {
var tty = $(this).attr('tty'),
ttm = $(this).attr('ttm');
$.ajax({
url: '/mobile/ajaxnew.php',
data: {
act: 'rili',
tty: tty,
ttm: ttm
},
type: 'post',
dataType: 'json',
success: function(res) {
console.log(res);
if (res.code == 1) {
$('.riz').attr('tty', res.data.preyear);
$('.riz').attr('ttm', res.data.premonth);
$('.riy').attr('tty', res.data.nextyear);
$('.riy').attr('ttm', res.data.nextmonth);
$('#nowdate').text(res.data.year + '年' + res.data.month + '月');
var zoninfo = '';
for (var i = 0; i < res.data.days.length; i++) {
if(res.data.loginfo.indexOf(res.data.days[i]) >-1){
zoninfo += '<li class="active">'+res.data.days[i]+'</li>';
}else{
zoninfo += '<li>'+res.data.days[i]+'</li>';
}
}
$('#rilihtml').html(zoninfo);
} else {
alert('获取数据失败!');
}
}
});
});

php 日历代码的更多相关文章

  1. java 日历代码实现

    System.out.println("请输入日期(按照格式:2030-3-10):"); //在控制台输入 //String str="2016-9-26"; ...

  2. PyQt4 进度条和日历 代码

    # -*- coding: utf-8 -*- """ ------------------------------------------------- File Na ...

  3. java中日历代码的实现

    import java.util.Scanner; com.lv.calendarWatch//包名 /* * 需求:输入一个年份和月份 ,显示当前月日情况 ,星期数要对应准确 * 1.1900年1月 ...

  4. [AY技术分享]WPF AYUI的高大上日历代码

    看到这里,也谢谢大家关注了AYUI 这次讲的是AY最近没事开发的AyDatePicker,先看效果图 SelectMode=DateTime模式 SelectMode=OnlySelectDate模式 ...

  5. Android 一个日历控件的实现代码

    转载  2017-05-19   作者:Othershe   我要评论 本篇文章主要介绍了Android 一个日历控件的实现代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考.一起跟随小编过来看 ...

  6. js编写当天简单日历

    之前一直很想用javascript写一个日历,但是因为完全没有好的思路, 所以迟迟没有尝试.最近在网上刚好看到用javascript编写的简单日历的例子,代码量虽然不大, 但是我觉得很好地阐述了js日 ...

  7. 用JS编写日历的简单思路

    提要:本文以写当前时间环境下当月的日历表为例,用最简单的方法实现JavaScript日历,旨在展示JS世界中实用为本.简单为上的解决问题的思路. Web页中的日历一般离不开表格,通常都使用表格装载指定 ...

  8. 推荐一款JavaScript日历控件:kimsoft-jscalendar

    一.什么是 kimsoft-jscalendar     一个简洁的avaScript日历控件,可在Java Web项目,.NET Web 项目中使用 二.kimsoft-jscalendar 有什么 ...

  9. 自定义javascript日历控件

    Web页中的日历一般离不开表格,通常都使用表格装载指定月的日期等信息.所以,要编写JS日历,首先必须解决的问题是表格的行与列问题.列是固定的,七列,因为一周有七天.行需要动态计算,因为,每一个月的第一 ...

随机推荐

  1. 【算法】欧几里得算法与青蛙约会oj

    欧几里得和扩展欧几里得算法 题目: poj 1061 poj 2142 双六 扩展欧几里得算法详解 先说欧几里得算法:欧几里得算法辗转相除求\(gcd\).求\(a.b\)的\(gcd\),则利用的性 ...

  2. Java PDF转图片

    maven依赖: <dependency> <groupId>org.apache.pdfbox</groupId> <artifactId>pdfbo ...

  3. postgresql数据库去重方法

    数据库去重有很多方法,下面列出目前理解与使用的方法 第一种 通过group by分组,然后将分组后的数据写入临时表然后再写入另外的表,对于没有出现再group by后面的field可以用函数max,m ...

  4. docker 镜像备份magento 2.2.3

    打包百度网盘: 链接:https://pan.baidu.com/s/1i_lSLt48RlxPonVA7qG5kg  密码:h1de 还原:docker load < (filename).t ...

  5. JumpServer1.0 服务搭建

    JumpServer1.0 服务搭建 系统环境配置 setenforce 0 systemctl stop iptables.service systemctl stop firewalld.serv ...

  6. 搭建Linux下的SVN服务器

    ______________________________________________配置SVN步骤______________________________________________ ...

  7. 通过10046 event来获取真实的执行计划

    获取SQL执行计划的方式有很多,但是某些时候获取的SQL执行计划并不是准确的,只有在SQL真实执行之后获取到的SQL PLAN才是真实准确的,其他方式(如,explain plan)获取到的执行计划都 ...

  8. <数据结构基础学习>(五)递归

    一. 递归 本质上,将原来的问题,转化为更小的同样的问题 举例:数组求和 Sum(arr[0... n-1]) = arr[0] + Sum(arr[1...n-1])  第二部分为更小的同一个问题 ...

  9. LeetCode--689_Maximum_Sum_of_3_NonOverlapping_Subarrays

    原题链接:点击这里 一道很水很水的背包问题? 大概算不上背包吧QAQ 自己的dp 真的是太差劲啦,以后每天一道LeetCode 备战秋招! package leetcode; public class ...

  10. 第四十一篇-android studio 关闭自动保存功能

    此方法不可用. 第一步:取消自动保存功能 File > Settings > Appearance & Behavior > System Settings > Syn ...