请问如果把PHP中时间戳转换成日期的日期转换成格林威治时间

php日期转时间戳,指定日期转换成时间戳
字体:[ ] 类型:转载 时间:
UNIX时间戳和格式化日期是我们常打交道的两个时间表示形式,Unix时间戳存储、处理方便,但是不直观,格式化日期直观,但是处理起来不如Unix时间戳那么自如,所以有的时候需要互相转换,下面给出PHP日期转时间戳、MySQL日期转换函数互相转换的几种转换方式
写过PHP+MySQL的程序员都知道有时间差,UNIX时间戳和格式化日期是我们常打交道的两个时间表示形式,Unix时间戳存储、处理方便,但是不直观,格式化日期直观,但是处理起来不如Unix时间戳那么自如,所以有的时候需要互相转换,下面给出互相转换的几种转换方式。 一、在MySQL中完成    这种方式在MySQL查询语句中转换,优点是不占用PHP解析器的解析时间,速度快,缺点是只能用在数据库查询中,有局限性。 1. UNIX时间戳转换为日期用函数: FROM_UNIXTIME() 一般形式:select FROM_UNIXTIME(); 2. 日期转换为UNIX时间戳用函数: UNIX_TIMESTAMP() 一般形式:Select UNIX_TIMESTAMP(' 12:23:00′); 举例:mysql查询当天的记录数: $sql=”select * from message Where DATE_FORMAT(FROM_UNIXTIME(chattime),'%Y-%m-%d') = DATE_FORMAT(NOW(),'%Y-%m-%d') order by id desc”; 当然大家也可以选择在PHP中进行转换,下面说说在PHP中转换。 二、在PHP中完成    这种方式在PHP程序中完成转换,优点是无论是不是数据库中查询获得的数据都能转换,转换范围不受限制,缺点是占用PHP解析器的解析时间,速度相对慢。 1. UNIX时间戳转换为日期用函数: date() 一般形式:date('Y-m-d H:i:s', ); 2. 日期转换为UNIX时间戳用函数:strtotime() 一般形式:strtotime(' 08:15:42'); php日期转时间戳,指定日期转换成时间戳 php日期转时间戳、指定日期转换成时间戳,PHP定时任务。 这两天要实现这样功能: 当达到某一条件时,让服务器发短信给用户,数量为多条。 基本思路:linux 定时扫描,若有满足条件的用户,则发送短信。 但为了防止打扰到用户,要求只能在白天8:00-20:00发送短信,怎么样获得到每天的这段时间区间? 如下代码:
代码如下: &? $y=date("Y",time()); $m=date("m",time()); $d=date("d",time()); $start_time = mktime(9, 0, 0, $m, $d ,$y); $end_time = mktime(19, 0, 0, $m, $d ,$y); $time = time(); if($time &= $start_time && $time &= $end_time) { // do something.... } ?&
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具现在的Unix时间戳(Unix timestamp)是:
JavaScript
Math.round(new Date().getTime()/1000)
getTime()返回数值的单位是毫秒
Microsoft .NET / C#
epoch = (DateTime.Now.ToUniversalTime().Ticks - 000000) /
SELECT unix_timestamp(now())
PostgreSQL
SELECT extract(epoch FROM now())
先 import time 然后 time.time()
获取Unix时间戳:Time.now 或 Time.new
显示Unix时间戳:Time.now.to_i
SQL Server
SELECT DATEDIFF(s, ' 00:00:00', GETUTCDATE())
Unix / Linux
VBScript / ASP
DateDiff("s", "01/01/:00", Now())
其他操作系统
(如果Perl被安装在系统中)
命令行状态:perl -e "print time"
String date = new java.text.SimpleDateFormat("dd/MM/yyyy HH:mm:ss").format(new java.util.Date(Unix timestamp * 1000))
JavaScript
先 var unixTimestamp = new Date(Unix timestamp * 1000) 然后 commonTime = unixTimestamp.toLocaleString()
date -d @Unix timestamp
from_unixtime(Unix timestamp)
先 my $time = Unix timestamp 然后 my ($sec, $min, $hour, $day, $month, $year) = (localtime($time))[0,1,2,3,4,5,6]
date('r', Unix timestamp)
PostgreSQL
SELECT TIMESTAMP WITH TIME ZONE 'epoch' + Unix timestamp) * INTERVAL '1 second';
先 import time 然后 time.gmtime(Unix timestamp)
Time.at(Unix timestamp)
SQL Server
DATEADD(s, Unix timestamp, ' 00:00:00')
VBScript / ASP
DateAdd("s", Unix timestamp, "01/01/:00")
其他操作系统
(如果Perl被安装在系统中)
命令行状态:perl -e "print scalar(localtime(Unix timestamp))"
long epoch = new java.text.SimpleDateFormat("dd/MM/yyyy HH:mm:ss").parse("01/01/:00");
JavaScript
var commonTime = new Date(Date.UTC(year, month - 1, day, hour, minute, second))
SELECT unix_timestamp(time)
时间格式: YYYY-MM-DD HH:MM:SS 或 YYMMDD 或 YYYYMMDD
先 use Time::Local 然后 my $time = timelocal($sec, $min, $hour, $day, $month, $year);
mktime(hour, minute, second, month, day, year)
PostgreSQL
SELECT extract(epoch FROM date('YYYY-MM-DD HH:MM:SS'));
先 import time 然后 int(time.mktime(time.strptime('YYYY-MM-DD HH:MM:SS', '%Y-%m-%d %H:%M:%S')))
Time.local(year, month, day, hour, minute, second)
SQL Server
SELECT DATEDIFF(s, ' 00:00:00', time)
Unix / Linux
date +%s -d"Jan 1, :01"
VBScript / ASP
DateDiff("s", "01/01/:00", time)
什么是Unix时间戳(Unix timestamp): Unix时间戳(Unix timestamp),或称Unix时间(Unix time)、POSIX时间(POSIX time),是一种时间表示方式,定义为从格林威治时间日00时00分00秒起至现在的总秒数。Unix时间戳不仅被使用在Unix系统、类Unix系统中,也在许多其他操作系统中被广泛采用
配色/在线汉字博客访问: 5104934
博文数量: 384
博客积分: 9600
博客等级: 上校
技术积分: 18581
注册时间:
2007年开始从事运维方面的工作,期间经历过网络管理员、linux运维工程师、DBA、分布式存储运维等多个IT职位。对linux运维、mysql数据库、分布式存储有丰富的经验。2012年加盟腾讯,目前在腾讯负责腾讯云数据库平台和分布式存储运维平台的运维规划工作。
IT168企业级官微
微信号:IT168qiye
系统架构师大会
微信号:SACC2013
分类: LINUX
下面介绍几种时间戳格式和标准时间格式转换的方法:
1、分别以标准格式和时间戳来显示当前时间[root@365linux ~]# date2010年 08月 10日 星期二 03:39:21 CST[root@365linux ~]# date +%s
2、显示指定时间的时间戳[root@365linux ~]# date -d " 10:25:30" +%s
3、将时间戳转换为标准时间格式
方法1:使用date命令[root@365linux ~]# date -d "@"2010年 07月 20日 星期二 10:25:30 CST[root@365linux ~]# date -d " utc
seconds"2010年 07月 20日 星期二 10:25:30 CST[root@365linux ~]# date -d " 14781 days" "+%Y/%m/%d %H:%M:%S" 00:00:00
方法2:使用awk里的时间函数[root@365linux ~]# echo "" |awk '{print strftime ("%F %T",$0)}' 10:25:30
方法3:使用perl处理[root@365linux ~]# perl -e 'print localtime()."\n";'Tue Jul 20 10:25:30 2010
关于时间格式的解释
UTC &(Universal Time Coordinated,UTC)世界协调时间
CST &(China Standard Time UTC+8:00)中国沿海时间(北京时间)
GMT &(Greenwich Mean Time)格林威治标准时间:
系统时区设置:[root@365linux ~]# vim /etc/sysconfig/clockZONE="Asia/Shanghai"UTC=trueARC=false[root@365linux ~]# cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
############################################################################
oracle 中将unix/linux时间戳进行转换
unix/linux时间戳是按照从格林威治时间日期计算的一个秒数。
unix/linux 时间戳转换为标准时间格式(主要是注意时区问题):
select TO_DATE('','yyyymmdd') + /86400
+TO_NUMBER(SUBSTR(TZ_OFFSET(sessiontimezone),1,3))/24 from
dual,其中就是unix/linux时间戳,转换完之后就表示为
18:02:15。
反过来也一样,还是要考虑时区:
select (to_date(' 18:02:15','yyyy-mm-dd hh24:mi:ss') -
to_date('','yyyy-mm-dd'))*86400-
TO_NUMBER(SUBSTR(TZ_OFFSET(sessiontimezone),1,3))*3600 from dual
阅读(6426) | 评论(0) | 转发(6) |
相关热门文章
给主人留下些什么吧!~~
请登录后评论。

我要回帖

更多关于 mysql时间戳转日期 的文章

 

随机推荐