php 排除周末与节假日程序实例代码
date_default_timezone_set('prc');
/**
* 求取从某日起经过一定天数后的日期,
* 排除周六周日和节假日
* @param $start 开始日期
* @param $offset 经过天数
* @param $exception 例外的节假日
* @param $allow 允许的日期(预留参数)
* @return
* examples:输入(2010-06-25,5,''),得到2010-07-02
*/
function getendday( $start='now', $offset=0, $exception='', $allow='' ){
//先计算不排除周六周日及节假日的结果
$starttime = strtotime($start);
$endtime = $starttime + $offset * 24 * 3600;
$end = date('y-m-d', $endtime);
//然后计算周六周日引起的偏移
$weekday = date('n', $starttime);//得到星期值:1-7
$remain = $offset % 7;
$newoffset = 2 * ($offset - $remain) / 7;//每一周需重新计算两天
if( $remain > 0 ){//周余凑整
$tmp = $weekday + $remain;
if( $tmp >= 7 ){
$newoffset += 2;
}else if( $tmp == 6 ){
$newoffset += 1;
}
//考虑当前为周六周日的情况
if( $weekday == 6 ){
$newoffset -= 1;
}else if( $weekday == 7 ){
$newoffset -= 2;
}
}
//再计算节假日引起的偏移
if( is_array($exception) ){//多个节假日
foreach ($exception as $day){
$tmp_time = strtotime($day);
if( $tmp_time>$starttime && $tmp_time<=$endtime ){//在范围(a,b]内
$weekday_t = date('n', $tmp_time);
if($weekday_t <= 5){//防止节假日与周末重复
$newoffset += 1;
}
}
}
}else{//单个节假日
if( $exception!='' ){
$tmp_time = strtotime($exception);
if( $tmp_time>$starttime && $tmp_time<=$endtime ){
$weekday_t = date('n', $tmp_time);
if($weekday_t <= 5){
$newoffset += 1;
}
}
}
}
//根据偏移天数,递归做等价运算111cn.net
if($newoffset > 0){
#echo "[{$start} -> {$offset}] = [{$end} -> {$newoffset}]"."<br /> ";
return getendday($end,$newoffset,$exception,$allow);
}else{
return $end;
}
}
/**
* 暴力循环方法
*/
function getendday2( $start='now', $offset=0, $exception='', $allow='' ){
$starttime = strtotime($start);
$tmptime = $starttime + 24*3600;
while( $offset > 0 ){
$weekday = date('n', $tmptime);
$tmpday = date('y-m-d', $tmptime);
$bfd = false;//是否节假日
if(is_array($exception)){
$bfd = in_array($tmpday,$exception);
}else{
$bfd = ($exception==$tmpday);
}
if( $weekday<=5 && !$bfd){//不是周末和节假日
$offset--;
#echo "tmpday={$tmpday}"."<br />";
}
$tmptime += 24*3600;
}
return $tmpday;
}
$exception = array(
'2010-01-01','2010-01-02','2010-01-03',
'2010-04-03','2010-04-04','2010-04-05',
'2010-05-01','2010-05-02','2010-05-03',
'2010-06-14','2010-06-15','2010-06-16',
'2010-09-22','2010-09-23','2010-09-24',
'2010-10-01','2010-10-02','2010-10-03','2010-10-04',
'2010-10-05','2010-10-06','2010-10-07',
);
//echo getendday('2010-08-27',3,'');
//echo getendday('2010-06-25',15,'2010-07-07');
$t1 = microtime();
echo getendday('2010-05-12',66,$exception)."<br />";
$t2 = microtime();echo "use ".($t2-$t1)." s <br />";
echo getendday2('2010-05-12',66,$exception)."<br />";
$t3 = microtime();echo "use ".($t3-$t2)." s <br />";
//加上
代码如下 | 复制代码 |
header('p3p: cp="cura adma deva ps教程ao psdo our bus uni pur int dem sta pre com nav otc noi dsp cor"'); |
//方法二针对二级域名
代码如下 | 复制代码 |
setcookie('loaddomain','http://'.$url,time()+3600*24,'/','.111cn.net'); |
//这样的话,所有111cn.net的二级域名都同时登陆了。
本程序是根据用户上传图片后再把上传的图片按比例生成缩略图代码如下 | 复制代码 |
<? if($_files['uploadfile']['size']){ |
<?php教程
if($_files['file']){
// ----------------------------------------------------------------------------------------------//
//
// 说明:文件上传 日期:2004-5-2
//
// ----------------------------------------------------------------------------------------------//
php简单实用文件上传代码
// 上传设置
$maxsize=10002400; //最大允许上传的文件大小
$alltype=array(".php",".php3"); //所有允许上传的文件类型
$imgtype=array(".php",".php3"); //类型
// 判断文件大小
if($_files['file']['size']>$maxsize) {
echo "您上传的资料大于10000k";
exit;
}
// 判断文件类型
$type=strstr($_files['file']['name'],".");
if(in_array($type,$alltype)){
echo "不允许上传该类型的文件";
exit;
}
include './uploaddir.php';
$time=date("ymd-his",time());
$fn=$time.$type;
$destination=$updir."/".$fn;
if(@move_uploaded_file($_files['file']['tmp_name'], $destination)){
@chmod($destination, 0777);
$fileurl=$updir."/".$destination;
$fileurl="".$destination;
}else{
echo "上传失败!";
echo "<script>location.href=history.back()</script>";
}
// ----------------------------------------------------------------------------------------------//
}
if($back=="no"):
echo "ok";
exit;
endif;
?>
<?php教程
$dbhost = 'localhost'; // 数据库教程服务器
$dbuser = 'root'; // 数据库用户名
$dbpw = 'qwaszx'; // 数据库密码
$dbname = 'movie'; // 数据库名
$adminemail = www.111cn.net@111cn.net; // 系统管理员 email
$database = 'mysql教程'; // 不能修改此处
$tplrefresh = 1; // 模板自动刷新开关 0=关闭, 1=打开
$pconnect = 0; // 数据库连接方式 0=connect, 1=pconnect
// ============================================================================
class db_class {
var $querynum = 0;
//function dbstuff() { global $fp; $fp = fopen("./tempdata/dblog.txt", "w"); }
function connect($dbhost, $dbuser, $dbpw, $dbname, $pconnect = 0) {
if($pconnect) {
if(!@mysql_pconnect($dbhost, $dbuser, $dbpw)) {
$this->halt('can not connect to mysql server');
}
} else {
if(!@mysql_connect($dbhost, $dbuser, $dbpw)) {
$this->halt('can not connect to mysql server');
}
}
mysql_query("set names 'gb2312'");
}
function select_db($dbname) {
return mysql_select_db($dbname);
}
function fetch_array($query, $result_type = mysql_assoc){
$query = mysql_fetch_array($query, $result_type);
return $query;
}
function query($sql, $silence = 0) {
//echo "|$sql|<br>"; //debug
//@fwrite($globals[fp], $sql." "); //debug
$query = mysql_query($sql);
//echo 'query:'.$query.'<br>';
if(!$query && !$silence)
{
$this->halt('mysql query error', $sql);
}
$this->querynum++;
return $query;
}
相关文章
- 这篇文章主要介绍了C#开发Windows窗体应用程序的简单操作步骤,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-04-12
- 本文通过例子,讲述了C++调用C#的DLL程序的方法,作出了以下总结,下面就让我们一起来学习吧。...2020-06-25
- 有一种方法,可以不打开网站而直接查看到这个网站的源代码.. 这样可以有效地防止误入恶意网站... 在浏览器地址栏输入: view-source:http://...2016-09-20
- <?php require('path.inc.php'); header('content-Type: text/html; charset=utf-8'); $borough_id = intval($_GET['id']); if(!$borough_id){ echo ' ...2016-11-25
- 这篇文章主要介绍了微信小程序 页面传值详解的相关资料,需要的朋友可以参考下...2017-03-13
- 本文实例讲述了JS基于Mootools实现的个性菜单效果代码。分享给大家供大家参考,具体如下:这里演示基于Mootools做的带动画的垂直型菜单,是一个初学者写的,用来学习Mootools的使用有帮助,下载时请注意要将外部引用的mootools...2015-10-23
- 本文通过两个示例讲解了一下Process类调用外部应用程序的基本用法,并简单讲解了StartInfo属性,有需要的朋友可以参考一下。...2020-06-25
- 本文实例讲述了JS+CSS实现分类动态选择及移动功能效果代码。分享给大家供大家参考,具体如下:这是一个类似选项卡功能的选择插件,与普通的TAb区别是加入了动画效果,多用于商品类网站,用作商品分类功能,不过其它网站也可以用,...2015-10-21
- 本文实例讲述了JS实现自定义简单网页软键盘效果。分享给大家供大家参考,具体如下:这是一款自定义的简单点的网页软键盘,没有使用任何控件,仅是为了练习JavaScript编写水平,安全性方面没有过多考虑,有顾虑的可以不用,目的是学...2015-11-08
- php 取除连续空格与换行代码,这些我们都用到str_replace与正则函数 第一种: $content=str_replace("n","",$content); echo $content; 第二种: $content=preg_replac...2016-11-25
- php简单用户登陆程序代码 这些教程很对初学者来讲是很有用的哦,这款就下面这一点点代码了哦。 <center> <p> </p> <p> </p> <form name="form1...2016-11-25
- 公司一些wordpress网站由于下载的插件存在恶意代码,导致整个服务器所有网站PHP文件都存在恶意代码,就写了个简单的脚本清除。恶意代码示例...2015-10-23
- 大概有如下步骤 新建项目Bejs 新建文件package.json 新建文件Gruntfile.js 命令行执行grunt任务 一、新建项目Bejs源码放在src下,该目录有两个js文件,selector.js和ajax.js。编译后代码放在dest,这个grunt会...2014-06-07
- 这篇文章主要介绍了微信小程序 二维码生成工具 weapp-qrcode详解,教大家如何在项目中引入weapp-qrcode.js文件,通过实例代码给大家介绍的非常详细,需要的朋友可以参考下...2021-10-23
- 本文实例讲述了JS实现双击屏幕滚动效果代码。分享给大家供大家参考,具体如下:这里演示双击滚屏效果代码的实现方法,不知道有觉得有用处的没,现在网上还有很多还在用这个特效的呢,代码分享给大家吧。运行效果截图如下:在线演...2015-10-30
- 这篇文章主要介绍了uniapp微信小程序:key失效的解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-01-20
- 其实挺简单的就是if(navigator.userAgent.indexOf('UCBrowser') > -1) {alert("uc浏览器");}else{//不是uc浏览器执行的操作}如果想测试某个浏览器的特征可以通过如下方法获取JS获取浏览器信息 浏览器代码名称:navigator...2015-11-08
- 一、日期减去天数等于第二个日期function cc(dd,dadd){//可以加上错误处理var a = new Date(dd)a = a.valueOf()a = a - dadd * 24 * 60 * 60 * 1000a = new Date(a)alert(a.getFullYear() + "年" + (a.getMonth() +...2015-11-08
- 微信支付,即便交了保证金,你还是处理测试阶段,不能正式发布。必须到你通过程序测试提交订单、发货通知等数据到微信的系统中,才能申请发布。然后,因为在微信中是通过JS方式调用API,必须在微信后台设置支付授权目录,而且要到...2014-05-31
将c#编写的程序打包成应用程序的实现步骤分享(安装,卸载) 图文
时常会写用c#一些程序,但如何将他们和photoshop一样的大型软件打成一个压缩包,以便于发布....2020-06-25