PHP中mktime时间转换成毫秒的方法

 更新时间:2016年11月25日 15:06  点击:1860
在php中要把时间日期转换成时间戳(转换成毫秒)我们有很多方法,最简单的就是利用time()直接获取的是毫秒如果是如2012-05-31这样的话,有要用其它方法了。

mktime()函数对计算日期和确认日期有效性来说是非常有用的。它将自动为超过范围以外的输入计算正确的值:

 代码如下 复制代码

<?php echo(date("M-d-Y",mktime(0,0,0,12,36,2001))."<br />");
echo(date("M-d-Y",mktime(0,0,0,14,1,2001))."<br />");
echo(date("M-d-Y",mktime(0,0,0,1,1,2001))."<br />");
echo(date("M-d-Y",mktime(0,0,0,1,1,99))."<br />");?>

The output of the code above would be:
上述代码将输出下面的结果:

Jan-05-2002Feb-01-2002Jan-01-2001Jan-01-1999 不用多解释了吧!

 代码如下 复制代码

$now = mktime(0,0,0,date("m"),date("d"),date("Y"));
echo "now is ".date("Y/m/d", $now);

显示结果:
now is 2012/05/30
显然这不是我想要的结果。
于是,按照旧有的思维,我想当然的改造成下面这个形式:

 代码如下 复制代码

$now = mktime(date("h"),date("M"),date("s"),date("m"),date("d"),date("Y"));
echo "now is ".date("Y/M/d h:i:s", $now);

注意红色的部分,通常如果月份用m,那么分钟就应该是M。或者前者用M,后者用m。
显示结果:

Warning: mktime() expects parameter 2 to be long, string given in D:usrwebroottestPHPindex.php on line 46
now is 1970/01/01 08:Jan:00

看来主观臆断是不可取的,PHP的语法和其他的语言还是有些区别的。

不卖关子了,还是直接给大家正确的答案

 代码如下 复制代码

$now = mktime(date("h"),date("i"),date("s"),date("m"),date("d"),date("Y"));
echo "now is ".date("Y/m/d h:i:s", $now);

哈哈~是“i”而不是什么m或者M,这里给出大家这个示例只是想让PHP的初学少走一些弯路。
至于M是什么意思,大家自己做一下就明白了...嘿嘿!!!
显示结果:

 代码如下 复制代码

now is 2012/05/30 04:54:25

好了,

mktime() 函数返回一个日期的 Unix 时间戳。

参数总是表示 GMT 日期,因此 is_dst 对结果没有影响。

参数可以从右到左依次空着,空着的参数会被设为相应的当前 GMT 值。

语法

mktime(hour,minute,second,month,day,year,is_dst)

参数 描述
hour 可选。规定小时。
minute 可选。规定分钟。
second 可选。规定秒。
month 可选。规定用数字表示的月。
day 可选。规定天。
year 可选。规定年。在某些系统上,合法值介于 1901 - 2038 之间。不过在 PHP 5 中已经不存在这个限制了。
is_dst

可选。如果时间在日光节约时间(DST)期间,则设置为1,否则设置为0,若未知,则设置为-1。

自 5.1.0 起,is_dst 参数被废弃。因此应该使用新的时区处理特性。

本文章来简单的介绍一下关于static变量在php函数中的用法,有需要了解的同学可参考一下。
 代码如下 复制代码

function sendHeader($num, $rtarr = null)
{    
static $sapi = null;    
if ($sapi === null)
{        
$sapi = php_sapi_name();    
}    
return $sapi++;


看PW源码的时候发现setHeader()函数中使用static关键字,很奇怪,以前也没这样用过。

static用在函数里面,声明一次变量后,如果再次调用这个函数将会在初始值延续,如$sapi这里将累加。

 代码如下 复制代码

?echo sendHeader(1)."<br>";
echo sendHeader(2)."<br>";
echo sendHeader(3)."<br>";


output:

?apache2handler
apache2handles
apache2handlet

  和global有点类似,但不同的是作用域。static只能作用于此函数。

有点意思。需要深入研究。

 

 代码如下 复制代码
class test
{
public static function a(){}
public function b(){}
}
$obj = new test;

调用 代码

 代码如下 复制代码

test::a();
$obj->a();
$obj->b();

变量范围的另一个重要特性是静态变量(static variable)。静态变量仅在局部函数域中存在,但当程序执行离开此作用域时,其值并不丢失

例子 使用静态变量的例子

 代码如下 复制代码
<?php
   function test()
   {
   static $w3sky = 0;
   echo $w3sky;
   $w3sky++;
   }
   ?>

现在,每次调用 test() 函数都会输出 $w3sky 的值并加一。


更多详细内容请查看:http://www.111cn.net/phper/php/php-static.htm

这个算是最简单的php入门教程了,我们只要知道几个常用的函数就可以实现删除字符串最后一个字符了,如果substr,rtrim等。


原字符串1,2,3,4,5,6,
去掉最后一个字符",",最终结果为1,2,3,4,5,6
代码如下:

 代码如下 复制代码

 $str = "1,2,3,4,5,6,";
$newstr = substr($str,0,strlen($str)-1);
echo $newstr;  //echo 1,2,3,4,5,6

 

系统自带的函数即可实现这样的效果,两种方法:

1) substr($str, 0, -1)

2)rtrim($str, ",")

上面的实例只讲述了利用php自身的函数,我们还可以利用很多的方法来实现了,这里就不说多了最基本的php入门教程大可参考一下。

本文章来介绍一篇关于thinkphp开启调试模式取消生成缓存,有需要了解的朋友可以参考一下本文章。

最近回到thinkphp  发现以前老版本的关闭缓存说的common这个里面的那两个关闭缓存的文件不见了。找了很长时间不知道怎么回事。

于是去看手册,看百度。 后来发现,可以开启调试模式来关闭缓存,而且开启调试模式对程序员来说还有很多好处的哦..

 

在thinkphp3.0完全开发手册里面搜调试两个字,你回发现很多技巧。下面是开启调试功能的步骤

 

虽然编译缓存很优秀,但是并不利于开发阶段中调试和排错,我们强烈建议ThinkPHP开发人员在开发阶段始终开启调试模式,方便及时发现隐患问题和分析、解决问题。开启调试模式很简单,只需要在入口文件中增加一行常量定义代码:

我的index.php里面的代码分享给你:

 代码如下 复制代码

<?php
 require './ThinkPHP/ThinkPHP.php';
 define('APP_DEBUG',1);
?>


在完成开发阶段部署到生产环境后,只需要删除调试模式定义代码即可切换到部署模式。


开启调试模式后,系统会首先加载系统默认的调试配置文件,然后加载项目的调试配置文件,调试模式的优势在于:


²  开启日志记录,任何错误信息和调试信息都会详细记录,便于调试;


²  关闭模板缓存,模板修改可以即时生效;


²  记录SQL日志,方便分析SQL;


²  关闭字段缓存,数据表字段修改不受缓存影响;


²  严格检查文件大小写(即使是Windows平台),帮助你提前发现Linux部署问题;


² 
可以方便用于开发过程的不同阶段,包括开发、测试和演示等任何需要的情况,不同的应用模式可以配置独立的项目配置文件;


关于调试模式的更多用法,我们会在后面进行更详细的讲解。

 

在php中要删除字符空间有很多的方法可用,我来介绍利用mb_ereg_replace()和ltrim,rtrim,trim这三个函数的处理方法。

实例

 代码如下 复制代码

<?
$str="     网页制作教程 www.111cn.net     ";
$str = mb_ereg_replace('^( | )+', '', $str);
$str = mb_ereg_replace('( | )+$', '', $str);
echo mb_ereg_replace('  ', "n  ", $str);
?>

有些朋友可能对mb_ereg_replace()没看明白,下面我们来介绍一下mb_ereg_replace这个函数吧

mb_ereg_replace()我们只要注意前面的mb就好了,有些朋友用过字符转换的一看就明白了这个函数是支持中文。

有些朋友会问php不是有自己的函数么,下面我们看实例

实例

 代码如下 复制代码

<?php
$str=" 去除前后空格 ";
echo "方括号中为原始字符串:[".$str."]<br>";
echo "原始字符串长度:".strlen($str)."<br>";
$str1=ltrim($str);
echo "执行ltrim()之后的长度:".strlen($str1)."<br>";
$str2=rtrim($str);
echo "执行rtrim()之后的长度:".strlen($str2)."<br>";
$str3=trim($str);
echo "执行trim()之后的长度:".strlen($str3)."<br>";
echo "去掉首尾空格之后的字符串:[".$str3."]";
?>

总结:同一个问题会有多种解决方法,就像我们删除字符空格一样,可以用两种不同的方法达到想同的效果了。

[!--infotagslink--]

相关文章

  • 使用PHP+JavaScript将HTML页面转换为图片的实例分享

    这篇文章主要介绍了使用PHP+JavaScript将HTML元素转换为图片的实例分享,文后结果的截图只能体现出替换的字体,也不能说将静态页面转为图片可以加快加载,只是这种做法比较interesting XD需要的朋友可以参考下...2016-04-19
  • 在java中获取List集合中最大的日期时间操作

    这篇文章主要介绍了在java中获取List集合中最大的日期时间操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-08-15
  • 在数据库里将毫秒转换成date格式的方法

    在开发过程中,我们经常会将日期时间的毫秒数存放到数据库,但是它对应的时间看起来就十分不方便,我们可以使用一些函数将毫秒转换成date格式。 一、 在MySQL中,有内置的函数from_unixtime()来做相应的转换,使用如下: 复制...2014-05-31
  • 教你怎么用Java获取国家法定节假日

    这篇文章主要介绍了教你怎么用Java获取国家法定节假日,文中有非常详细的代码示例,对正在学习java的小伙伴们有非常好的帮助,需要的朋友可以参考下...2021-04-23
  • Javascript类型转换的规则实例解析

    这篇文章主要介绍了Javascript类型转换的规则实例解析,涉及到javascript类型转换相关知识,对本文感兴趣的朋友一起学习吧...2016-02-27
  • mysql中获取一天、一周、一月时间数据的各种sql语句写法

    创建表:复制代码 代码如下:create table if not exists t( id int, addTime datetime default '0000-00-00 00:00:00′)添加两条初始数据:insert t values(1, '2012-07-12 21:00:00′);insert t values(2, '2012-07...2014-05-31
  • .NET/C# 使用Stopwatch测量运行时间

    这篇文章主要介绍了.NET/C# 使用Stopwatch测量运行时间,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-06-25
  • 美图秀秀把普通照片快速转换成卡通效果教程

    今天小编在这里就来给美图秀秀的这一款软件的使用者们来说下把普通照片快速转换成卡通效果的教程,各位想知道具体制作步骤的使用者们,那么下面就快阿里跟着小编一起看一...2016-09-14
  • 常用的日期时间正则表达式

    常用的日期时间正则表达式 下面收藏了大量的日期时间正则匹配函数,包括分钟,时间与秒都能达到。 正则表达式 (?n:^(?=d)((?<day>31(?!(.0?[2469]|11))|30(?!.0?2)|29(...2016-11-25
  • 非常全面的php日期时间运算汇总

    实例讲解之前,先来介绍几个核心函数: mktime 函数 mktime() 函数返回一个日期的 Unix 时间戳。 参数总是表示 GMT 日期,因此 is_dst 对结果没有影响。 参数可以从右到左依次空着,空着的参数会被设为相应的当前 GMT 值。...2015-11-08
  • 浅析C#数据类型转换的几种形式

    本篇文章是对C#中数据类型转换的几种形式进行了详细的分析介绍,需要的朋友参考下...2020-06-25
  • C#中动态显示当前系统时间的实例方法

    想在网页中动态地显示当前系统的时间,找了好多,不过都是一些停在那里不动的。。。不过皇天不负有心人,终于让我找到了...2020-06-25
  • postgresql 中的时间处理小技巧(推荐)

    这篇文章主要介绍了postgresql 中的时间处理小技巧(推荐),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-03-29
  • JavaScript实现Base64编码转换

    这篇文章主要介绍了JavaScript实现Base64编码转换的相关资料,非常简单实用,需要的朋友可以参考下...2016-04-25
  • 从chrome调试工具中把拖延时间的东西找出来

    我打开android开发手册的时候:http://www.csdn123.com/html/android/reference/packages.html 发现打开速度很慢,我用按了一下F12打开调试面板,切换到网络的选项卡network...2016-05-19
  • PHP编码转换函数mb_convert_encoding与iconv用法

    文章来实现一个PHP编码转换函数mb_convert_encoding与iconv用法,希望例子能帮助到各位。 将一个短信接口代码从apache迁移到nginx+php-fpm后,发现无法发出短信了,查...2016-11-25
  • C# 当前系统时间获取及时间格式详解

    这篇文章主要介绍了C# 当前系统时间获取及时间格式详解的相关资料,这里提供代码实例,帮助大家学习参考,需要的朋友可以参考下...2020-06-25
  • c#入门之类型转换详解

    这篇文章主要介绍了c#的类型转换详解,类型转换分两种形式:隐式转换、显示转换,下面是详细介绍...2020-06-25
  • JavaScript实现数据类型的相互转换

    这篇文章主要为大家详细介绍了JavaScript实现数据类型的相互转换,感兴趣的朋友可以参考一下...2016-03-09
  • 帝国CMS显示指定时间内更新的信息数量

    /*解决代码高亮太长不换行*/ .syntaxhighlighter{word-break:break-all;} uParse('#newstext', {rootPath: '/e/extend/ueditor/'}) 帝国CMS显示指定时间内更新的信息数...2016-11-01