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

php日历模块的运算逻辑求解!如何求日期对应的星期几!,第1张

现在以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标签创建日期

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

$j = date("t"); //获取当前月份天数

$start_time = strtotime(date('Y-m-01')); //获取本月第一天时间

$array = array();

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

$array[] = date('Y-m-d',$start_time+$i86400); //每隔一天赋值给数组

}

print_r($array);

判断当前年份是否是闰年的php程序如下

<php

$d=date("Y");

if($d%4==0 && $d%100!=0 || $d%400==0){

echo "今年是闰年";

}else{

echo "今年不是闰年";

}

>

大家也许对PHP时间戳已经有所了解,那么我们如何应用它来获取具体的日期呢?我们今天来为大家介绍一下PHP时间戳获取当前时期的具体方式。

实现功能:获取某个日期的时间戳,或获取某个时间的PHP时间戳。

strtotime能将任何英文文本的日期时间描述解析为Unix时间戳,我们结合mktime()或date()格式化日期时间获取指定的时间戳,实现所需要的日期时间。

strtotime 将任何英文文本的日期时间描述解析为Unix时间戳[将系统时间转化成unix时间戳]

一,获取指定日期的unix时间戳 strtotime(”2009-1-22″) 示例如下:

echo strtotime(”2009-1-22“) 结果:1232553600

说明:返回2009年1月22日0点0分0秒时间戳

二,获取英文文本日期时间 示例如下:

便于比较,使用date将当时间戳与指定时间戳转换成系统时间

(1)打印明天此时的时间戳strtotime(”+1 day“)

当前时间:echo date(”Y-m-d H:i:s”,time()) 结果:2009-01-22 09:40:25

指定时间:echo date(”Y-m-d H:i:s”,strtotime(”+1 day”)) 结果:2009-01-23 09:40:25

(2)打印昨天此时的PHP时间戳strtotime(”-1 day“)

当前时间:echo date(”Y-m-d H:i:s”,time()) 结果:2009-01-22 09:40:25

指定时间:echo date(”Y-m-d H:i:s”,strtotime(”-1 day”)) 结果:2009-01-21 09:40:25

(3)打印下个星期此时的时间戳strtotime(”+1 week“)

当前时间:echo date(”Y-m-d H:i:s”,time()) 结果:2009-01-22 09:40:25

指定时间:echo date(”Y-m-d H:i:s”,strtotime(”+1 week”)) 结果:2009-01-29 09:40:25

(4)打印上个星期此时的时间戳strtotime(”-1 week“)

当前时间:echo date(”Y-m-d H:i:s”,time()) 结果:2009-01-22 09:40:25

指定时间:echo date(”Y-m-d H:i:s”,strtotime(”-1 week”)) 结果:2009-01-15 09:40:25

(5)打印指定下星期几的PHP时间戳strtotime(”next Thursday“)

当前时间:echo date(”Y-m-d H:i:s”,time()) 结果:2009-01-22 09:40:25

指定时间:echo date(”Y-m-d H:i:s”,strtotime(”next Thursday”)) 结果:2009-01-29 00:00:00

(6)打印指定上星期几的时间戳strtotime(”last Thursday“)

当前时间:echo date(”Y-m-d H:i:s”,time()) 结果:2009-01-22 09:40:25

指定时间:echo date(”Y-m-d H:i:s”,strtotime(”last Thursday”)) 结果:2009-01-15 00:00:00

以上示例可知,strtotime能将任何英文文本的日期时间描述解析为Unix时间戳,我们结合mktime()或date()格式化日期时间获取指定的PHP时间戳,实现所需要的日期时间。

^\d{4}(年|\-|\)(0[1-9]|1[0-2])(月|\-|\)(0[1-9]|[1-2]\d|3[0-1])日$

这种是还是有缺陷的你可以看到最后一个,还有就是2月31日这样的也会被匹配的。不过应对一般日期还是可以的。

问题不清晰,我来猜猜楼主的意图。 估计楼主在date的使用上遇到问题了,导致看不到预想的结果。 这里我提供一下解决问题的思路,楼主可以将以上格式一个一个地去测试,看看是哪个出了问题。 因为有些格式的适用场合被限定了,浏览器不一定去支持。 追问: 不是,php获取date(time())的是一串数字,也就是时间戳。现在就是将获得的时间戳转换成,能够直观的时间,也就是 xxxx年xx月xx日xx时xx分xx秒 ,这种形式。 举个例子: $i=date(time());//举例:我获得的时间为 101012314 ,而这个101012314时间戳对应的是2000年3月8日15时15分10秒 我要的就是讲获取的时间戳转换成直观能够看明白的时间,也就是2000年3月8日15时15分10秒 回答: string date ( string $format [, int $timestamp ] ) 返回将整数 timestamp按照给定的格式字串而产生的字符串。如果没有给出时间戳则使用本地当前时间。换句话说,timestamp是可选的,默认值为 time()。 根据API说明,很明显,date的第一个参数应该是格式化字符串,你用得稍有偏差。 我给个简单例子。 <php echo date( "Y年m月d日H时i分s秒" ); 补充: 是不是感觉你自己已经把答案写了出来了呢?却还要提问,我真有点搞不懂。 追问: 孩子,我当然知道date( "Y年m月d日H时i分s秒" );就是将当前时间显示出来,我的目的是,我要获取当前date(time())然后我会加个数,然后将加数后的时间戳再转换成date( "Y年m月d日H时i分s秒" );这种形式显示。可能你还不明白我的目的,所以才会误解 回答: int mktime ([ int $hour = date("H") [, int $minute = date("i") [, int $second = date("s") [, int $month = date("n") [, int $day = date("j") [, int $year = date("Y") [, int $is_dst = -1 ]]]]]]] ) 根据给出的参数返回 Unix 时间戳。时间戳是一个长整数,包含了从 Unix 纪元(January 1 1970 00:00:00 GMT)到给定时间的秒数。 补充: time()之后加一个数就可以了,不明白为什么还需要变成date后,再变回时间戳?那不是更麻烦吗? 追问: 怎么加啊,date(time())怎么加数啊 回答: 你想怎么加? 追问: date(time())是获取当前时间,例如说,我要加在这上加上10秒,怎么加 回答: date( "Y年m月d日H时i分s秒",time()+10 );

求采纳

这篇文章主要介绍了PHP使用GETDATE获取当前日期时间作为一个关联数组的方法,实例分析了php中GETDATE函数使用技巧,需要的朋友可以参考下

本文实例讲述了PHP使用GETDATE获取当前日期时间作为一个关联数组的方法。分享给大家供大家参考。具体分析如下:

PHP

GETDATE函数是用来获得当前的日期和时间,从 *** 作系统或一个关联数组转换成UNIX风格的日期整数。

语法格式如下

1

2

array

getdate

();

array

getdate

(integer

$Time);

参数如下:

Arguments

$Time

The

number

of

seconds

since

midnight

before

January

1,

1970

(UNIX

style)

Default

The

default

is

the

current

date

and

time

from

the

operating

system)

The

return

value

is

an

associative

array

containing:

mon

The

month

of

the

year

as

a

number

(112)

mday

The

day

of

the

month

(131)

year

The

year

(4

digits)

hours

The

hour

of

the

day

(023)

minutes

The

minutes

of

the

hour

(059)

seconds

The

seconds

of

the

minute

(059)

month

The

month

of

the

year

as

a

word

(JanuaryDecember)

yday

The

day

of

the

year

(0365)

wday

The

day

of

the

week

as

a

number

(06)

weekday

The

day

of

the

week

as

a

word

(SundaySaturday)

0

Seconds

since

midnight

before

January

1,

1970

下面是一个使用范例:

1

2

3

4

5

6

<php

$Now

=

getdate();

foreach

($Now

as

$Key

=>

$Value)

{

echo

"$Key

=>

$Valuen";

}

>

输出结果如下:

1

2

3

4

5

6

7

8

9

10

11

seconds

=>

59

minutes

=>

14

hours

=>

7

mday

=>

26

wday

=>

6

mon

=>

12

year

=>

2009

yday

=>

359

weekday

=>

Saturday

month

=>

December

0

=>

1261811699

希望本文所述对大家的php程序设计有所帮助。

问题一:苹果4S自带的日历怎样设置才能显示农历 按照以下方式设置

1,在iphone4s的桌面上,打开“设置”。

2,在设置选项栏里,选择“邮件、通讯录、日历”选项。

3,在账户选项里,选择“添加账户”,然后在账户信息设置里,拉到最下面有个“其他”,点击,在其他选项里,找到日历设置选项的“添加已订阅的日历”。

4,输入服务器地址: iweekme/m/ical/nongphpstarty=2012&county=3 (代表订阅2012年-2014年的农历)。

5,验证服务器信息 ,添加完成后,即可看到订阅的账户信息成功。然后到日历或者是消息栏,即可看到农历的信息。

问题二:iphone日历怎么显示农历 方法/步骤

1在iPhone主界面找到“设置”

2进入“设置”

3找到“邮件、通讯录、日历”,点击进入。

4点击“添加账户”,这里会看到很多邮箱种类,选择最下面的“其他”。

5在“日历”下面选择“添加已订阅的日历”。

6在“服务器”一栏中输入“

iweekme/m/ical/nongphpstarty=2012&county=3

”,其中2012是起始年份,这个根据你的需要输入。county指定的为年数,所以这里给出的农历为2012年、2013年和2014年的。

7输入完毕后点击右上角的“下一步”。会提示你“正在验证”。

8验证服务器过程中会d出一个对话框,选择“继续”即可。

9稍等片刻,验证完毕会出现一些描述信息,点击右上角的“存储”

10这个时候就可以返回“设置”中的“邮件、通讯录、日历”查看刚才添加的日历账户。这个时候该iPhone的日历中也会显示农历了。

问题三:苹果手机日历不显示农历怎么设置 1:直接打开手机桌面的设置的按钮,往下拉找到“邮件、通讯录、日历”的按钮。

2:点击进入“邮件、通讯录、日历”页面,往下拉找到日历的相关选项,选择其中的“其他历法”并点击进入相关页面。

3:当前显示应该是处于关闭状态,选择关闭下边的“农历”选项,这样就显示农历了。

问题四:iphone7日历要怎么显示农历 iPhone7要如何关闭显示呢对于一些不太关注农历日历的果粉来说,隐藏或关闭锁屏界面的农历日历显得会简洁一些。 以下是iPhone 7与iPhone 7 Plus锁屏农历日历的关闭方法,感兴趣的果粉,不妨来学习下这个小Get! 第一步:从iPhone 7桌面依次进入「设置」->「日历」设置,如图所示。 第二步:在日历设置中,继续点击进入「其它历法」设置,然后点击选择“关闭”其它历法,如下所示。 关闭其它历法后,就可以关闭iPhone 7与7 Plus的锁屏农历日历显示了,效果如下图。

问题五:苹果手机日历怎么显示农历节假日24节气 可以通过设置来实现。

方法如下:

1、在系统界面上找到并打开设置。在设置里面一直向下拉,找到“邮件、通讯录、日历“。

2、在界面中找到“日历”打开“时区优先”设置为“北京”,其他历法中将“农历”选中,周数打开。

3、设置完毕后返回主界面,找到日历,就会看到有农历显示。

问题六:苹果5手机日历没有农历该怎么设置 1、点击设置进入,选择邮件、通讯录、日历

2、然后选择添加账户,在d出的窗口再选择其他

3、然后再选择添加已订阅的日历

4、接着在输入框里面输入下面的地址即可

iweekme/m/ical/nongphpstarty=2015&county=11

其中“2015”是显示农历的开始年份,“11”是显示几年的农历,这两个数字可以按需编辑

5、然后点击下一步直到完成,然后退出,打开日历,稍微点击几个日期,就可以看到在原先的数字下面出现了一点,然后下面也出现了农历

问题七:苹果锁定界面日历怎么显示农历 进入手机日历-点击右下角“・・・”-设置-勾选“中国农历”,然后进入手机设置-锁屏界面-选择一个应用以显示详细状态-选择“日历”即可。如果在日历中没有“中国农历”选项,请通过电脑打开calendarlive并登陆手机中使用的微软帐户,点击页面右上角齿轮状按钮,勾选“中国农历”,然后将手机联网同步微软帐户即可。

问题八:苹果手机的日历表,怎么设置阴历? 设置步骤如下;

1点击设置进入,选择邮件、通讯录、日历。

2然后选择添加账户,在d出的窗口再选择其他。

3再选择添加已订阅的日历。

4接着在输入框里面输入下面的地址即可iweekme/m/ical/nongphpstarty=2013&county=5 其中“2013”是显示农历的开始年份,“5”是显示几年的农历,这两个数字可以按需求编辑。

5然后点击下一步直到完成,然后退出,

6打开日历,稍微点击几个日期,就可以看到在原先的数字下面出现了一点,然后下面也出现了农历。

问题九:iphone6在日历里怎么设置农历 在苹果推出iOS8后,Chinese Calendar Pro作者推出了一款可以在通知中心显示农历、节气、节日以及法定假日的应用Caltrix。让不越狱的iOS8用户也能够享受到这个福利。

日历中的 *** 作:

双击日历左边进入前一周(月)

双击日历右边进入下一周(月)

双击日历中间回到今天。

单击日期打开系统日历进行查看

双指单击打开设置

Caltrix是一款在AppStore上架的“正规”软件(6元人民币),因此它与此前的Chinese Calendar Pro不能共通。据开发者介绍,由于通知中心手势的限制,Caltrix无法左右滑动来查看上(下)一周(月),取而代之的是双击日历的左侧或右侧,对于已经用惯Chinese Calendar Pro的用户来说是一种体验的下降。

当然也可以通过同步助手的正版商店中下载农历的应用,也很方便。

问题十:苹果手机怎么显示农历日期 如果系统日历显示不了,那你下载一个人生日历吧,它能显示农历和阳历,很好用呢

以上就是关于php日历模块的运算逻辑求解!如何求日期对应的星期几!全部的内容,包括:php日历模块的运算逻辑求解!如何求日期对应的星期几!、使用PHP如何获取某个月的所有日期、PHP如何编程当前年份是否是闰年等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9559367.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存