当前位置:首页 » 编程语言 » php日历插件

php日历插件

发布时间: 2022-05-21 06:08:14

A. php怎样添加JS日历控件

日期插件的包为:mydate.js。

1:首先将日期插件的包引入到页面中

<scriptlanguage="javaScript"src="../Inc/Js/mydate.js"></script>

2:设置鼠标点击事件,当鼠标点击获得焦点的时候,触发事件,调用方法

<inputtype="text"name="starttime"onfocus="MyCalendar.SetDate(this)"value="<?phpecho$rq;?>">
<inputtype="text"name="endtime"onfocus="MyCalendar.SetDate(this)"value="<?phpecho$rq;?>">

3:完整页面代码

<?php
date_default_timezone_set("PRC");
$nowtime=time();
$rq=date("Y-m-d",$nowtime);
?>
<html>
<head>
<metahttp-equiv="Content-Type"content="text/html;charset=gb2312"/>
<metaname="generator"content="FFKJ.Net"/>
<linkrev="MADE"href="mailto:[email protected]">
<title>在线--后台</title>
<linkrel="stylesheet"type="text/css"href="../Skins/Admin_Style.Css"/>
<scriptlanguage="JavaScript"src="../Inc/Js/mydate.js"></script>
</head>
<body>
开始时间:<inputtype="text"name="starttime"onfocus="MyCalendar.SetDate(this)"value="<?phpecho$rq;?>">
结束时间:<inputtype="text"name="endtime"onfocus="MyCalendar.SetDate(this)"value="<?phpecho$rq;?>">
</body>
</html>

B. 如何使用PHP制作一个日期的下拉菜单啊求PHP大神赐教啊

php是服务器端语言,不管你是下拉框方式的日历还是使用日历插件都是html和js的事情,和php无关。
你可以直接搜索3级联动日历选择代码或者直接用jQuery的日历插件,非常方便,官网有示例。

C. php日历模块的运算逻辑求解!如何求日期对应的星期几!

现在以2010年6月14日为例说明。6月份共有30天,在这个日历表中共5行,首先需要确定当前所在的日期(当然也可以指定一个日期),比如14日,通过表格可以知道它在第3行对应星期一那列(第3周)。通常每个月第1天不是在表格开始的位置,位置并不固定,同样不固定的还有每个月的周数,有时候是4周,有时候是5周。这样,想要完成这个日历表格就需要确定一些基础的日期变量,下面具体来看需要设定的基础变量。

PHP提供了date()函数,该函数提供了丰富的日期处理功能。现在需要获得的数据有两个,第一个是当月的总天数;第二个是该月的第一天所在星期中的第几天,数字表示0(表示星期天)到6(表示星期六)。通过date()函数可以很容易获得上面的数据。

<?php

//date()函数的基本用法

$year = date('Y'); //获得年份,例如2006

$month = date('n'); //获得月份,例如04

$day = date('j'); //获得日期,例如3

?>

通过mktime()函数和date()函数获得当月的总天数。

//获得当月的总天数

$daysInMonth = date("t",mktime(0,0,0,$month,1,$year));

同样是组合使用mktime()函数和date()函数,获得该月的第一天所在星期中的第几天,数字表示0(表示星期天)到6(表示星期六)。

//获得每个月的第一天,例如4

$firstDay = date("w", mktime(0,0,0,$month,1,$year));

现在重新来观察下这个日历表格,我们发现,表格中的值是从1到x(当月的总天数)。我们可以形象地通过一个坐标来表示每一个位置(x,y),表格的起始位置是(0,0),结束位置是(5,4),当月第一天的起始位置是(0,3)。现在来创建一个二维数组来存储对应的日期。

(1)需要获得表格的数目。

//计算数组中的日历表格数

$tempDays = $firstDay + $daysInMonth;

(2)需要算出该月一共有几周(即表格的行数)。

//获得表格行数

$weeksInMonth = ceil($tempDays/7);

(3)在获得行数的变量之后,创建一个二维数组用来存放日期信息,代码如下:

<?php

for($j=0;$j<$weeksInMonth;$j++)

{

for($i=0;$i<7

;$i++)

{

$counter ++;

$week [$j] [$i] = $counter;

}

}

?>

(4)细心的读者可能发现,上面的代码其实是一个雏型,因为它处理出来的数据并没有过滤那些空白的表格单元。下面来继续改造下这段代码,加入过滤和构造的部分。改造后的代码如下:

<?php

//创建日期二维数组

for($j = 0; $j < $weeksInMonth; $j ++) {

for($i = 0; $i < 7; $i ++) {

$counter ++;

$week [$j] [$i] = $counter;

//日期偏移量

$week [$j] [$i] -= $firstDay;

if (($week [$j] [$i] < 1) || ($week [$j] [$i] > $daysInMonth)) {

$week [$j] [$i] = "";

}

}

}

?>

(5)在获得正确的二维数组之后,就可以通过foreach()函数将存储的日期信息遍历出来,同时插入HTML标签创建日期

不知是否正确,转自我的一个朋友

D. php如何 获取 my97datepicker日历控件提交的值!

表单提交的话。

若是get请求,$_GET['startDate'], post请求则是$_POST['startDate']

E. php行程日历怎么做

1 这个不是php做的这个是js效果
2 这个网上好又多的日历插件网络搜一个“ jquery 日历插件”

欢迎关注我的博客www.chengtao.org

F. php怎么等到当前日期时间还可以修改

在前端html实现的时候,用时间插件做比较简单。你也可以用js写一段代码:当文本框获得焦点时文本框的值为当前的日期和时间。

G. php如何给input加上日历的功能

用My97日期控件吧
http://www.my97.net/dp/demo/index.htm

里面例子很多,超级好用,什么情况都有,收藏起来吧。

如果你要用jquery 比较漂亮的UI的
http://www.oschina.net/project/tag/278/jquery-calendar

这里要什么有什么

H. php在日历上面显示天气预报这么显示 我日历代码已经写好在下面这么添加天气预报

直接用中国天气网的插件就可以

I. php日历插件的制作方法,求思路

<?phpheader("content-type:text/html;charset=utf-8");?>
<?php?>
<tableclass="tabletable-stripedtable-hover">
<?php
//注:32位机器或者32位PHP版本可能只能计算到2038年之前的月份
//若没有GET方法传入参数,则使用服务器本地当前日期;否则使用传入的参数,方便跳转月份
$year=date("Y");
$month=date("n");
$alert="<divclass='alertalert-warning'>输入的日期格式有误!</div>";
$alertYear="<divclass='alertalert-warning'>无法计算1901年以前的日历!</div>";
if($_REQUEST){
$year=$_REQUEST["year"];
$month=$_REQUEST["month"];
}
if(!in_array($month,array("1","2","3","4","5","6","7","8","9","10","11","12"))){echo$alert;exit;}
if($year<1901){echo$alertYear;exit;}
?>
<caption><h4><?phpecho$year;?>&nbsp;年&nbsp;<?phpecho$month;?>&nbsp;月</h4></caption>
<?php
//计算当前日期,当月天数,获得星期数据,将默认星期天数字0改为7,方便处理循环
$today=date("j");
$days=date("t",strtotime("$year-$month-01"));
$week=date("w",strtotime("$year-$month-01"));
if($week==0){$week=7;}
?>
<tr>
<th>一</th>
<th>二</th>
<th>三</th>
<th>四</th>
<th>五</th>
<th>六</th>
<th>日</th>
</tr>
<tr>
<?php
//插入空白无日期区域,循环次数为当前月第一天的星期数-1
for($space=1;$space<$week;$space++){
echo"<td>-</td>";
}
//循环插入数据,当到达周日时换行输出;标记当前日期为红色
for($day=1;$day<=$days;$day++){
if(($day+$week-1)%7===0){
if($day==$today&&$year==date("Y")&&$month==date("n")){
echo"<tdstyle='background-color:pink;'>$day</td>";
echo"</tr>";
echo"<tr>";
}
echo"<td>$day</td>";
echo"</tr>";
echo"<tr>";
}else{
if($day==$today&&$year==date("Y")&&$month==date("n")){
echo"<tdstyle='background-color:pink;'>$day</td>";
}else{
echo"<td>$day</td>";
}
}
}
//尾部补足
$spacing=36-$days-$week<0?43-$days-$week:36-$days-$week;
for($footer=1;$footer<=$spacing;$footer++){
echo"<td>-</td>";
}
?>
</tr>
</table>

我以前写的,你随意看看~~

J. FullCalendar修改事件的时间格式

FullCalendar用日历的形式直观的展示了日程安排、代办事宜等事件,那么日历中的事件是怎么添加进去的呢?本文将结合实例使用PHP+Mysql+jQuery讲解如何在FullCalendar中新建事件。

查看演示 下载源码
本站之前已经推出的FullCalendar应用系列文章中,有介绍FullCalendar的基本使用,FullCalendar的选项配置API,以及FullCalendar如何读取数据库中的数据,本文是建立在前面几个知识点之上的,如果您对FullCalendar还不了解,那建议您先看下本站关于FullCalendar的文章。本文除了您具备基本的html,css知识外,还需要您对PHP,MySQL以及jQuery技术有一定的基础,对于如何连接数据库,以及PHP和jQuery的基本函数方法的使用本文不做讲解。
HTML
我们新建一个名称为cal_opt.html的文件,然后载入必须的CSS和JS文件。
<link rel="stylesheet" type="text/css" href="css/fullcalendar.css">
<link rel="stylesheet" type="text/css" href="css/fancybox.css">
<script src='js/jquery-1.9.1.min.js'></script>
<script src='js/jquery-ui-1.10.3.custom.min.js'></script>
<script src='js/fullcalendar.min.js'></script>
<script src='js/jquery.fancybox-1.3.1.pack.js'></script>

以上文件中,jquery-ui是提供事件拖动、和日期选择器功能,fancybox是点击新建事件时提供弹出层功能。
接着,我们在body中加入以下代码:
<div id="calendar"></div>

jQuery
我们调用fullCalendar日历插件,日历中的events事件数据源来源于json.php,在上一篇文章中我们已经讲解,它是通过PHP读取mysql数据然后生成JSON数据格式返回给fullCalendar渲染事件。
好,到这里我们关键的一步到来了,我们通过单击日历中的任意日期空白格子时,弹出一个要求输入事件相关信息的层,通过在层中的表单输入相关信息并提交来完成新建事件的操作。
FullCalendar提供了dayClick方法,当dayClick发生时,调用回调函数,这里首先要将fullCalendar的日期格式化处理(fullCalendar文档中有说明),因为我们需要将日期作为参数传给弹出层的表单。然后调用fancybox弹出层,我们使用ajax调用,调用的url是event.php,并追加参数,以下是完整代码:
$(function() {
$('#calendar').fullCalendar({
events: 'json.php', //事件数据源
dayClick: function(date, allDay, jsEvent, view) {
var selDate =$.fullCalendar.formatDate(date,'yyyy-MM-dd');//格式化日期
$.fancybox({//调用fancybox弹出层
'type':'ajax',
'href':'event.php?action=add&date='+selDate
});
}
});
});

关于fancybox弹出层的应用,您可以参阅本站文章的相关介绍: Fancybox丰富的弹出层效果
event.php
Fancybox通过ajax调用了event.php中的内容。event.php通过获取参数,在弹出层中展示一个新建事件的表单,内容如下:
<div class="fancy">
<h3>新建事件</h3>
<form id="add_form" action="do.php" method="post">
<input type="hidden" name="action" value="add">
<p>日程内容:<input type="text" class="input" name="event" id="event" style="width:320px"
placeholder="记录你将要做的一件事..."></p>
<p>开始时间:<input type="text" class="input datepicker" name="startdate" id="startdate"
value="<?php echo $_GET['date'];?>">
<span id="sel_start" style="display:none"><select name="s_hour">
<option value="00">00</option>
...<!--省略多个option,下同-->
</select>:
<select name="s_minute">
<option value="00" selected>00</option>
...
</select>
</span>
</p>
<p id="p_endtime" style="display:none">结束时间:<input type="text" class="input datepicker"
name="enddate" id="enddate" value="<?php echo $_GET['date'];?>">
<span id="sel_end" style="display:none"><select name="e_hour">
<option value="00">00</option>
...
</select>:
<select name="e_minute">
<option value="00" selected>00</option>
...
</select>
</span>
</p>
<p>
<label><input type="checkbox" value="1" id="isallday" name="isallday" checked> 全天</label>
<label><input type="checkbox" value="1" id="isend" name="isend"> 结束时间</label>
</p>
<div class="sub_btn"><span class="del"><input type="button" class="btn btn_del"
id="del_event" value="删除"></span>
<input type="submit" class="btn btn_ok" value="确定"> <input type="button"
class="btn btn_cancel" value="取消" onClick="$.fancybox.close()"></div>
</form>
</div>

在弹出层中,我们要处理几个交互动作,一是点击日期输入框时调用jquery ui的datepicker日期选择器,二是选择“全天”和“结束时间”复选框时需要显示与隐藏的表单控件,最后是“确定”和“取消”按钮的操作。
首先我们要在event.php中载入jquery ui的样式以及ajax处理表单的插件:jquery.form.js。
<link rel="stylesheet" type="text/css" href="css/jquery-ui.css"<
<script type="text/javascript" src="js/jquery.form.min.js"></script>

接着我们来处理调用日期选择器和选择“全天”及“结束时间”复选框时的动作。
$(function(){
$(".datepicker").datepicker();//调用日历选择器
$("#isallday").click(function(){//是否是全天事件
if($("#sel_start").css("display")=="none"){
$("#sel_start,#sel_end").show();
}else{
$("#sel_start,#sel_end").hide();
}
});

$("#isend").click(function(){//是否有结束时间
if($("#p_endtime").css("display")=="none"){
$("#p_endtime").show();
}else{
$("#p_endtime").hide();
}
$.fancybox.resize();//调整高度自适应
});
});

关于日历选择器的使用,本站文章:日期选择器:jquery datepicker的使用有相关介绍。而复选框勾选时,对应的表单内容进行显示与隐藏的操作,需要大家多试试,值得一提的是在勾选“结束时间”选项时,弹出层的高度会变化,这时可以调用$.fancybox.resize()来进行自动调整高度,否则在弹出层中会出现滚动条影响视觉效果。
弹出层的最后操作时提交表单,很显然,event.php表单代码中的action提交到了do.php来处理的。我们调用jquery.form.js进行异步处理,提交表单时进行表单验证,这里的beforeSubmit调用回调函数showRequest(),然后就是提交成功后,success回调函数showResponse()。关于jquery.form.js的使用,后面笔者会在helloweba中专门讲解,敬请关注。
$(function(){
//提交表单
$('#add_form').ajaxForm({
beforeSubmit: showRequest, //表单验证
success: showResponse //成功返回
});
});

function showRequest(){
var events = $("#event").val();
if(events==''){
alert("请输入日程内容!");
$("#event").focus();
return false;
}
}

function showResponse(responseText, statusText, xhr, $form){
if(statusText=="success"){
if(responseText==1){
$.fancybox.close();//关闭弹出层
$('#calendar').fullCalendar('refetchEvents'); //重新获取所有事件数据
}else{
alert(responseText);
}
}else{
alert(statusText);
}
}

showResponse()根据接收状态,获取do.php返回的内容,如果成功(指插入数据成功),则关闭弹出层,并且通过fullcalendar的refetchEvents方法重新载入所有日历事件(局部刷新了日历区的内容),否则提示相关出错信息。
do.php
do.php用来处理表单提交,包括后面会讲解的修改和删除日历事件的操作。通过处理表单数据,然后将数据写入MySQL数据表中,并且返回执行结果。
include_once('connect.php');//连接数据库

$action = $_POST['action'];
if($action=='add'){
$events = stripslashes(trim($_POST['event']));//事件内容
$events=mysql_real_escape_string(strip_tags($events),$link); //过滤HTML标签,并转义特殊字符

$isallday = $_POST['isallday'];//是否是全天事件
$isend = $_POST['isend'];//是否有结束时间

$startdate = trim($_POST['startdate']);//开始日期
$enddate = trim($_POST['enddate']);//结束日期

$s_time = $_POST['s_hour'].':'.$_POST['s_minute'].':00';//开始时间
$e_time = $_POST['e_hour'].':'.$_POST['e_minute'].':00';//结束时间

if($isallday==1 && $isend==1){
$starttime = strtotime($startdate);
$endtime = strtotime($enddate);
}elseif($isallday==1 && $isend==""){
$starttime = strtotime($startdate);
}elseif($isallday=="" && $isend==1){
$starttime = strtotime($startdate.' '.$s_time);
$endtime = strtotime($enddate.' '.$e_time);
}else{
$starttime = strtotime($startdate.' '.$s_time);
}

$colors = array("#360","#f30","#06c");
$key = array_rand($colors);
$color = $colors[$key];

$isallday = $isallday?1:0;
$query = mysql_query("insert into `calendar` (`title`,`starttime`,`endtime`,`allday`,`color`)
values ('$events','$starttime','$endtime','$isallday','$color')");
if(mysql_insert_id()>0){
echo '1';
}else{
echo '写入失败!';
}
}

热点内容
工业服务器机箱怎么样 发布:2025-02-14 00:29:15 浏览:85
英朗压缩机 发布:2025-02-14 00:29:12 浏览:677
java门面模式 发布:2025-02-14 00:29:09 浏览:916
java旋转 发布:2025-02-14 00:22:49 浏览:103
存储虚拟化方案 发布:2025-02-14 00:21:15 浏览:695
ubuntupython3安装 发布:2025-02-14 00:14:45 浏览:661
和平精英怎么更新比较快安卓 发布:2025-02-14 00:14:35 浏览:974
怎么改密码锁 发布:2025-02-13 23:47:39 浏览:852
androidbitmap获取大小 发布:2025-02-13 23:47:38 浏览:559
怎么把升级鸿蒙系统变回安卓 发布:2025-02-13 23:36:07 浏览:595