日期操作积累

1、php将表单里面获取的日期格式转换成统一的格式

2015-9-9 都统一转换成 2015-09-09 这样在数据库都是统一的格式,方便以后查询

$year = "2015";
$month = "9";
$day = "09";
var_dump(checkdate($month,$day, $year));//月和日带有前导0都是符合格式的
if(checkdate($month,$day, $year)===false){
    exit(‘error‘);
};

$unixtime = mktime(2,2,2,$month,$day,$year);//目的是交给php转换成月和日都带有前导0的格式统一的格式存储在数据库方便以后查询
var_dump(date("Y-m-d",$unixtime));
////交给php转换成时间戳,然后反转回来

2、获取上一天的开始时间戳和结束时间戳

本来思路是:

先用date获取当天的年月日。单独获取。得到年是2015 月是9 日是28

然后减去1就可以了。但问题出来了。
如果今天是1号呢。减去1就变成0了。上个月可能是28天,也可能是30天。

这样子,先得到上一天的时间戳。让php自动去计算。

strtotime("-1 day");//得到上一天的时间戳,现在是几点就得到上一天这个时间点的时间戳,用这种方式好处是解决了上面问题,php会自动去计算上个月多少天

<?php
header("Content-type:text/html;charset=utf-8");
date_default_timezone_set("Asia/Shanghai");//设置时区
$last_day = strtotime("-1 day");//得到上一天的时间戳,现在是几点就得到上一天这个时间点的时间戳

//通过时间戳得到年月日,以便mktime使用
$year = date("Y",$last_day);
$month = date("m",$last_day);
$day = date("d",$last_day);

$last_day_begin = mktime(0,0,0,$month,$day,$year);//昨天的一天开始的时间戳
$last_day_end = mktime(23,59,59,$month,$day,$year);

echo ‘昨天开始时间戳:‘;
var_dump($last_day_begin);
echo date(‘Y-m-d H:i:s‘,$last_day_begin);
echo ‘<br />‘;

echo ‘昨天结束时间戳:‘;
var_dump($last_day_end);
echo date(‘Y-m-d H:i:s‘,$last_day_end);
echo ‘<br />‘;

echo ($last_day_end-$last_day_begin)/(60*60);//恰好24个小时

时间: 2024-10-01 06:20:39

日期操作积累的相关文章

java 日期操作,Date、Calendar 操作

java开发中避免不了日期相关操作,这里总结了一些常用方法~ 直接上码: package jse; import java.io.UnsupportedEncodingException; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.Locale; /**  * 常用日期操

PHP日期操作类代码-农历-阳历转换、闰年、计算天数等

这是一个实用的PHP日期时间操作类,里面包括了公历-农历转换.转换成中文日期格式.计算农历相隔天数.根据阴历年获取生肖.获取阴历月份的天数.获取农历每年的天数.获取闰月.计算阴历日期与正月初一相隔的天数.计算2个公历(阳历)日期之间的天数.根据距离正月初一的天数计算阴历日期.获取天干地支纪年等,PHP日期操作类:Lunar.class.php代码如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27

oracle日期操作

日期操作:ADD_MONTHS(date,i) 作用 返回在自定日期上添加的月份 i是整数 如果i是小数,则截取整数部分 i是负数 原有日期减去相应部分 例子: SQL> select add_months(sysdate,3),add_months(sysdate,-3) from dual; ADD_MONTHS(SYS ADD_MONTHS(SYS -------------- -------------- 20-7月 -16 20-1月 -16 NEXT_DAY(date,char) 如

JAVA笔记10__Math类、Random类、Arrays类/日期操作类/对象比较器/

/** * Math类.Random类.Arrays类:具体查JAVA手册...... */ public class Main { public static void main(String[] args) { String[] s1 = {"a","b","c","d","e"}; String[] s2 = {"a","b","c",&qu

Oracle 11g SQL fundamentals 03 -- 日期操作函数

1.Oracle日期在内部的表示是数值格式,精确度从世纪到秒. 2.默认的日期表示格式为DD-MON-RR  (不是YY) YY 与 RR 的区别: 3.日期操作函数 示例: NEXT_DAY的第二个参数也可以是数字,表示几天后的日期.LAST_DAY是求该日期所在月份的最后一天. ROUND('DD-11-2014','MONTH')是精确到月,‘日’1-15号算这个月的 ('01-11-2014'),超过15号算下个月的 ('01-12-2014'). ROUND('DD-MON-2014'

NSDate 总结日期操作

IOS Object-c NSDate总结日期操作 //NSDate //1, 创建NSDate对象 NSDate *nowDate = [NSDate date]; NSLog(@"%@",nowDate); //2, 创建明天现在的时间 NSDate *tomorrow = [NSDate dateWithTimeIntervalSinceNow:24*3600]; NSLog(@"%@",tomorrow); //3, 创建昨天现在的时间 NSDate *ye

JAVASE02-Unit03: 日期操作 、 集合框架

Unit03: 日期操作 . 集合框架 java.util.Date package day03; import java.util.Date; /** * java.util.Date * Date内部维护一个long值,该值表示自1970年元旦 * 到该对象表示的时间点之间所经过的毫秒值 * 由于Date存在时区,千年虫问题,所以在jdk1.1发布 * 时大部分操作时间的方法全部被标注为过时方法,不再 * 建议使用. * 现在Date仅用于表示一个具体的时间点. * @author admi

java 字符串操作和日期操作

一.字符串操作 创建字符串 String s2 = new String("Hello World"); String s1 = "Hello World"; 1.字符串连接 多个字符串链接时,每个字符串之间用+相连,+就是字符串链接,连接之后生成一个新的字符串. 2.获取字符串长度 a.lenght() 根据索引从0开始,截取字符串长度 a.substring(1,3) ; 从下表1开始截取到下标3. 3.获取指定字符串的索引位置 indexOf()方法;last

java日期操作大全

摘自(http://www.blogjava.net/i369/articles/83483.html) java日期操作 大全 先来一个:  取得指定月份的第一天与取得指定月份的最后一天  http://iamin.blogdriver.com/iamin/847990.html /**           *  取得指定月份的第一天           *           *  @param  strdate  String           *  @return  String