PHP开发札记系列(三)-日期与时间

WBOY
Release: 2016-06-13 13:25:07
Original
917 people have browsed it

PHP开发笔记系列(三)-日期与时间

??? 前两篇完成了 《PHP开发笔记系列(一)-PDO使用》 和《PHP开发笔记系列(二)-字符串使用》 ,今天开始研究一下PHP中的日期时间处理和MySQL中的日期时间处理,《PHP开发笔记系列(三)-日期与时间》 。

?

????? 日期时间是平常用得比较多的函数,在JAVA中我们通过new Date()可以获取服务器的当前时间,通过SimpleDateFormat类,并指定formatString,可以将date对象的值格式化成指定的形式。同理,在PHP中,同样有类似的类和函数,那就是time函数和date函数。time()类似于new Date(),能够获取服务器当前时间,date函数类似于SimpleDateFormat类。

1. 使用time函数获取服务器当前时间,使用date函数进行格式化

file:time.php
url:http://localhost:88/datetime/timephp
<?php // 获取服务器当前时间
    $time = time();
   
    echo $time."<br/>";
   
    // 获取当前默认是时区
    echo date_default_timezone_get()."<br>";
    echo date("Y-m-d h:i:s", $time)."<br>";

    echo "<hr>";
   
    // 设置当前默认是时区
    date_default_timezone_set("America/New_York");
    echo date("Y-m-d h:i:s", $time)."<br>";
?>
Copy after login
?


2. 通过字符串构造日期时间

file:strtotime.php
url:http://localhost:88/datetime/strtotime.php
<?php // 字符串转time类型
    $time1 = strtotime("2012-05-27 10:52:05");
    
    // 使用date函数获取星期几并输出
    echo 'today:'.date("l", $time1)."<br/>";
    
    // 使用date函数获取当月总天数并输出
    echo 'total day of this month:'.date("t", $time1)."<br>";
?>
Copy after login
?

3. 基于当前时间的日期时间计算

file:date-compute.php
url:http://localhost:88/datetime/date-compute.php
<?php // 计算time
    $nextDay = strtotime("+1 day", time());
    $lastDay = strtotime("-1 day", time());
    $nextMonth = strtotime("+1 month", time());
    $lastMonth = strtotime("-1 month", time());
    $nextYear = strtotime("+1 year", time());
    $lastYear = strtotime("-1 year", time());
    
    echo 'new day:'.date("Y-m-d h:i:s", $nextDay)."<br/>";
    echo 'last day:'.date("Y-m-d h:i:s", $lastDay)."<br>";
    echo 'next month:'.date("Y-m-d h:i:s", $nextMonth)."<br>";
    echo 'last month:'.date("Y-m-d h:i:s", $lastMonth)."<br>";
    echo 'next year:'.date("Y-m-d h:i:s", $nextYear)."<br>";
    echo 'last year:'.date("Y-m-d h:i:s", $lastYear)."<br>";
    
    // 通过date函数获取年份
    echo 'current year:'.date("Y");

?>
Copy after login

?
4. 在SQL中处理日期时间

SELECT NOW()
SELECT CURRENT_TIMESTAMP();
SELECT DATE_FORMAT(NOW(), "%Y-%m-%d");
SELECT DATE_FORMAT(NOW(), "%h:%i:%s");
SELECT DATE_FORMAT(NOW(), "%W %w %p");
Copy after login

?

5. 在SQL中进行日期计算
??? 使用DATE_ADD函数进行未来日期的计算

SELECT DATE_ADD(NOW(), INTERVAL 1 YEAR);
SELECT DATE_ADD(NOW(), INTERVAL 1 MONTH);
SELECT DATE_ADD(NOW(), INTERVAL 1 DAY);
SELECT DATE_ADD(NOW(), INTERVAL 1 HOUR);
SELECT DATE_ADD(NOW(), INTERVAL 1 MINUTE);
SELECT DATE_ADD(NOW(), INTERVAL 1 SECOND);
Copy after login

?

??? 使用DATE_SUB函数进行过去日期的计算

SELECT DATE_SUB(NOW(), INTERVAL 1 YEAR);
SELECT DATE_SUB(NOW(), INTERVAL 1 MONTH);
SELECT DATE_SUB(NOW(), INTERVAL 1 DAY);
SELECT DATE_SUB(NOW(), INTERVAL 1 HOUR);
SELECT DATE_SUB(NOW(), INTERVAL 1 MINUTE);
SELECT DATE_SUB(NOW(), INTERVAL 1 SECOND);
Copy after login

?


??? 上述函数的执行结合也可用于SQL语句当中,如查询前三天的日志信息,SQL如下:
SELECT * FROM log WHERE create_time BETWEEN SELECT DATE_SUB(NOW(), INTERVAL 3 DAY) AND SELECT DATE_ADD(NOW(), INTERVAL 1 DAY);

?

??? 本文地址:http://ryan-d.iteye.com/blog/1543363

?

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template