仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1205|回复: 18
打印 上一主题 下一主题

[学习教程] PHP网页设计PHP中的日期实时间

[复制链接]
海妖 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-2-4 00:16:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
告诉你了一个方式,但是缺少努力这一环节,那也是白搭。   PHP有良多便于利用的函数以显示及处置日期。



要以某种特定格局显示日期或工夫,可以使用date()函数。它有两个参数:若何显示日期的格局和代表你所要显示日期的工夫戳。这个工夫戳必需是先前所提到的从 1970 年起算的总秒数(假如你要利用以后工夫可以使用time()函数,此函数会前往“如今”的工夫戳)。date() 有良多格局选项,好像C言语中的strftime()函数或Perl言语的POSIX::strftime()函数一样。

<?php

$birthday_stamp = mktime(19,45,0,3,10,1975);

$birthday_formatted = date('F d, Y - g:ia',$birthday_stamp);

echo "David was born on $birthday_formatted."

?>

会显示

David was born on March 10, 1975--7:45 p.m.


固然,假如你需求某已知的特定日期,这类庞杂的格局函数其实不会非常有效。由于你事前已晓得你的格局将会是甚么。当在处置需求用户选择某日期的表单输入局部时,这些函数会对照有效:

<SELECT NAME="when">

<?php

$d = time();

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

echo '<OPTION VALUE="'.$d.'">'.date('F d',$d);

$d += 86400;

}

?>

</SELECT>

以上会输入一个单选框,个中有十个选项――明天及今后九天。在法式轮回入手下手之前,咱们将以后工夫寄存于变量$d中。每个<OPTION>值会被显示,而个中的值会是以Unix工夫戳盘算,且所显示出来的文字设定为月、日(“July 27”、“July 28”等等)。在显示值后,变量$d 会被加上 86,400(是一天二十四小时的总秒数――24小时*60分钟*60秒)。

经由过程联合mktime()及date()函数,你就能够得出关于某特定用户输出日期的相干信息。那假如要寻觅从某特定日期算起的第一个礼拜天(或一周中的恣意一天)呢?起首,先编写一个会输入恰当格局的函数:

<?php

functiondisplay_form() {

global $PHP_SELF;

$dotw = array('Sunday','Monday','Tuesday','Wednesday','Thursday',

'Friday','Saturday');

$months = array( 1 => 'January','February','March','April','May','June',

'July','August','September','October','November','December');

?>

<FORM TARGET="<?php echo $PHP_SELF; ?>" METHOD=GET>

Find the first

<SELECT NAME="dotw">

<?php

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

echo "<OPTION> $dotw[$i]";

}

echo '</SELECT> after <SELECT NAME="month">';

for ($i = 1; $i <= 12; $i++) {

echo "<OPTION VALUE=\"$i\"> $months[$i]";

}

echo '</SELECT> <SELECT NAME="day">';

for ($i = 1; $i <= 31; $i++) {

echo "<OPTION> $i";

}

echo '</SELECT>, <SELECT NAME="year">';

$start_year = date('Y') - 10;

$end_year = $start_year + 20;

for ($i = $start_year; $i <= $end_year; $i++) {

echo "<OPTION> $i";

}

echo '<INPUT TYPE="HIDDEN" NAME="stage" VALUE="process">';

echo '</SELECT> <INPUT TYPE="SUBMIT" VALUE="Do it!"7></FORM>';

}

?>

这傍边含有一些函数是咱们到今朝为止还没会商过的。$months数组写得稍微分歧,由于需求让一月份索引为1,而非0。别的,由法式主动发生此表单要比将一切这个表单位素的值逐一手动列出要更加轻松,因而,顶真个表单入手下手局部是display_form()函数中独一不是属于 PHP形式的。另外,利用数据(“Y”)设置变量$start_year和变量$end_year可以便利处置从往年算起十年前后的工夫局限。
以下是处置表单的函数:



<?php

function process_form() {

global $dotw;

global $month;

global $day;

global $year;

$timestamp = mktime(0,0,0,$month,$day,$year);

$next_dotw = '';

$next_timestamp = $timestamp;

while ($next_dotw != $dotw) {

$next_timestamp += 86400;

$next_dotw = date('l',$next_timestamp);

}

$formatted_first = date('F d, Y',$timestamp);

$formatted_next = date('F d, Y',$next_timestamp);

echo "The first $dotw after $formatted_first is $formatted_next.";

}

?>

起首,此代码将所失掉的日期转化为Unix工夫戳模式。假如咱们需求更加慎重的话,可以到场某些代码以确保所失掉的日期在正当的日期局限内,不外在这此咱们临时没有需要如许做。

当咱们要寻觅的“下一天”的礼拜数不是用户所输出的一个礼拜数时,轮回持续。当纷歧样时,日期所代表的总秒数就会被增添(一样是86400秒=24小时*60分钟*60秒),然后谁人秒数所代表的礼拜数就会被从头盘算。

一旦礼拜数分歧,process_form() 函数就会输入一行准确动静:

The first Sunday after June 25, 1999 is June 27, 1999.

咱们一样需求谁人熟习的主轮回将这些函数绑缚在一同:

<?php

if (empty($stage)) { display_form(); }

else { process_form(); }

?>

日期处置代码有时需求更加庞杂以处置夏令时及分歧时区,不外date()和mktime()函数都是处置Unix工夫戳变换的根基东西,它们在算法上操作复杂,且以直不雅体例表达日期与工夫。函数date()和mktime()以机械地点时区来对工夫停止操作。假如想利用格林威治工夫(GMT),则可以使用函数gmdate()和gmmktime()。

例如,关于一台处于美国东部夏令时的盘算机(掉队格林威治工夫四小时):

<?php

$today = mktime(12,0,0,6,25,1999);

echo 'Here it is '.date('g:i:s a, F d, Y',$today);

echo '';

echo 'In GMT it is '.gmdate('g:i:s a, F d, Y',$today);

?>

将显示

Here it is 12:00:00 pm, June 25, 1999

In GMT it is 4:00:00 pm, June 25, 1999

  学习了六个多月PHP了,还是个新手,在这里受到了很多人的帮助,谢谢你们!
变相怪杰 该用户已被删除
沙发
发表于 2015-2-4 10:39:26 | 只看该作者
多看优秀程序员编写的代码,仔细理解他们解决问题的方法,对自身有很大的帮助。
若相依 该用户已被删除
板凳
发表于 2015-2-9 22:11:46 | 只看该作者
当留言板完成的时候,下步可以把做1个单人的blog程序,做为目标,
不帅 该用户已被删除
地板
发表于 2015-2-26 11:44:24 | 只看该作者
如果你已经到这种程度了,那么你已经可以做我的老师了。其实php也分很多的区域,
莫相离 该用户已被删除
5#
发表于 2015-3-4 02:16:17 | 只看该作者
这些都是最基本最常用功能,我们这些菜鸟在系统学习后,可以先对这些功能深入研究。
飘飘悠悠 该用户已被删除
6#
发表于 2015-3-11 15:04:08 | 只看该作者
为了以后维护的方便最好是代码上都加上注释,“予人方便,自己方便”。此外开发文档什么的最好都弄齐全。我觉得这是程序员必备的素质。虽然会消耗点很多的时间。但是确实是非常有必要的。
只想知道 该用户已被删除
7#
发表于 2015-3-19 13:37:17 | 只看该作者
使用 jquery 等js框架的时候,要随时注意浏览器的更新情况,不然很容易发生框架不能使用。
若天明 该用户已被删除
8#
发表于 2015-3-24 11:18:40 | 只看该作者
,熟悉html,能用div+css,还有javascript,优先考虑linux。我在开始学习的时候,就想把这些知识一起学习,我天真的认为同时学习能够互相呼应,因为知识是相通的。
金色的骷髅 该用户已被删除
9#
发表于 2015-3-31 05:42:11 | 只看该作者
写的比较杂,因为我也是个新手,不当至于大家多多指正。
深爱那片海 该用户已被删除
10#
发表于 2015-4-1 15:20:33 | 只看该作者
我学习了一段时间后,我发现效果并不好(估计是我自身的问题)。因为一个人的精力总是有限的,同时学习这么多,会导致每个的学习时间都得不到保证。
愤怒的大鸟 该用户已被删除
11#
发表于 2015-4-2 06:46:03 | 只看该作者
要进行开发,搭建环境是首先需要做的事,windows下面我习惯把环境那个安装在C盘下面,因为我配的环境经常出现诡异事件,什么事都没做环境有的时候就不能用啦。
精灵巫婆 该用户已被删除
12#
发表于 2015-4-4 03:30:00 | 只看该作者
php是动态网站开发的优秀语言,在学习的时候万万不能冒进。在系统的学习前,我认为不应该只是追求实现某种效果,因为即使你复制他人的代码调试成功,实现了你所期望的效果,你也不了解其中的原理。
蒙在股里 该用户已被删除
13#
发表于 2015-4-6 21:41:35 | 只看该作者
为了以后维护的方便最好是代码上都加上注释,“予人方便,自己方便”。此外开发文档什么的最好都弄齐全。我觉得这是程序员必备的素质。虽然会消耗点很多的时间。但是确实是非常有必要的。
小妖女 该用户已被删除
14#
发表于 2015-4-26 09:48:26 | 只看该作者
在学习的过程中不能怕麻烦,不能有懒惰的思想。学习php首先应该搭建一个lamp环境或者是wamp环境。这是学习php开发的根本。虽然网络上有很多集成的环境,安装很方便,使用起来也很稳定、
透明 该用户已被删除
15#
发表于 2015-5-6 12:09:40 | 只看该作者
学习php的目的往往是为了开发动态网站,phper就业的要求也涵盖了很多。我大致总结为:精通php和mysql
小女巫 该用户已被删除
16#
发表于 2015-6-24 20:56:15 | 只看该作者
说点我烦的低级错误吧,曾经有次插入mysql的时间 弄了300年结果老报错,其实mysql的时间是有限制的,大概是到203X年  具体的记不清啦,囧。
17#
发表于 2015-6-28 21:55:41 | 只看该作者
其实没啥难的,多练习,练习写程序,真正的实践比看100遍都有用。不过要熟悉引擎
冷月葬花魂 该用户已被删除
18#
发表于 2015-7-7 21:51:04 | 只看该作者
有时候汉字的空格也能导致页面出错,所以在写代码的时候,要输入空格最好用引文模式。
活着的死人 该用户已被删除
19#
发表于 2015-7-11 10:32:03 | 只看该作者
曾经犯过一个很低级的错误,我在文件命名的时候用了一个横线\\\\\\\'-\\\\\\\' 号,结果找了好几个小时的错误,事实是命名的时候 是不能用横线 \\\\\\\'-\\\\\\\' 的,应该用的是下划线  \\\\\\\'_\\\\\\\' ;
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-29 07:19

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表