飞鸟加速可以通过多种方式获得时间。首先,它可以通过使用精确的时钟来获取时间,这样可以确保它的时间准确性。其次,它可以通过使用网络时间协议(NTP)来获取网络时间,以确保它的时间准确性。此外,它还可以通过使用GPS接收器来获取GPS时间,以确保它的时间准确性。最后,它还可以通过使用本地时钟来获取本地时间,以确保它的时间准确性。
大家也许对PHP时间戳已经有所了解,那么我们如何应用它来获取具体的日期呢?我们今天来为大家介绍一下PHP时间戳获取当前时期的具体方式。
实现功能:获取某个日期的时间戳,或获取某个时间的PHP时间戳。
strtotime能将任何英文文本的日期时间描述解析为Unix时间戳,我们结合mktime()或date()格式化日期时间获取指定的时间戳,实现所需要的日期时间。
strtotime 将任何英文文本的日期时间描述解析为Unix时间戳[将系统时间转化成unix时间戳]
一,获取指定日期的unix时间戳 strtotime(”2009-1-22″) 示例如下:
echo strtotime(”2009-1-22“) 结果:1232553600
说明:返回2009年1月22日0点0分0秒时间戳
二,获取英文文本日期时间 示例如下:
便于比较,使用date将当时间戳与指定时间戳转换成系统时间
(1)打印明天此时的时间戳strtotime(”+1 day“)
当前时间:echo date(”Y-m-d H:i:s”,time()) 结果:2009-01-22 09:40:25
指定时间:echo date(”Y-m-d H:i:s”,strtotime(”+1 day”)) 结果:2009-01-23 09:40:25
(2)打印昨天此时的PHP时间戳strtotime(”-1 day“)
当前时间:echo date(”Y-m-d H:i:s”,time()) 结果:2009-01-22 09:40:25
指定时间:echo date(”Y-m-d H:i:s”,strtotime(”-1 day”)) 结果:2009-01-21 09:40:25
(3)打印下个星期此时的时间戳strtotime(”+1 week“)
当前时间:echo date(”Y-m-d H:i:s”,time()) 结果:2009-01-22 09:40:25
指定时间:echo date(”Y-m-d H:i:s”,strtotime(”+1 week”)) 结果:2009-01-29 09:40:25
(4)打印上个星期此时的时间戳strtotime(”-1 week“)
当前时间:echo date(”Y-m-d H:i:s”,time()) 结果:2009-01-22 09:40:25
指定时间:echo date(”Y-m-d H:i:s”,strtotime(”-1 week”)) 结果:2009-01-15 09:40:25
(5)打印指定下星期几的PHP时间戳strtotime(”next Thursday“)
当前时间:echo date(”Y-m-d H:i:s”,time()) 结果:2009-01-22 09:40:25
指定时间:echo date(”Y-m-d H:i:s”,strtotime(”next Thursday”)) 结果:2009-01-29 00:00:00
(6)打印指定上星期几的时间戳strtotime(”last Thursday“)
当前时间:echo date(”Y-m-d H:i:s”,time()) 结果:2009-01-22 09:40:25
指定时间:echo date(”Y-m-d H:i:s”,strtotime(”last Thursday”)) 结果:2009-01-15 00:00:00
以上示例可知,strtotime能将任何英文文本的日期时间描述解析为Unix时间戳,我们结合mktime()或date()格式化日期时间获取指定的PHP时间戳,实现所需要的日期时间。
在Smarty
中获取当前日期时间和格式化日期时间与PHP中有些不同的地方,这里就为您详细介绍:
首先是获取当前的日期时间:
在PHP中我们会使用date函数来获取当前的时间,实例代码如下:
date("Y-m-dH:i:s");
//该结果会显示为:2010-07-27
21:19:36
的模式
但是在Smarty
模板中我们就不能使用date
了,而是应该使用
now
来获取当前的时间,实例代码如下:
{$smartynow}
//该结果会显示为:1280236776的时间戳模式
然而我们还可以将这个时间戳格式化,实例代码如下:
{$smartynow|date_format:'%Y-%m-%d
%H:%M:%S'}
//该结果会显示为
2010-07-27
21:19:36
的时间模式
需要说明的是
Smarty
中的这个date_format
时间格式化函数和PHP中的
strftime()函数基本上相同,您可以去查看PHP中的
strftime()
函数中的format
识别转换标记。其中
%Y
是代表十进制年份,%m是代表十进制月份,%d
是代表十进制天数,%H
是代表十进制小时数,%M是代表十进制的分数,%S是代表十进制的秒数(这里的S是大写的哦)。
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
smarty中date_format函数用法
在php中使用date函数来格式化时间戳,smarty中可以使用date_format来实现
具体用法:{$timestamp|date_fomat:”%Y-%m-%d
%H:%M:%S”} 注意:|
两边没有空格
输出形式:2010-07-10
16:30:25
其他用法如下:
{$smartynow|date_format}
{$smartynow|date_format:”%A,
%B
%e,
%Y”}
{$smartynow|date_format:”%H:%M:%S”}
{$yesterday|date_format}
{$yesterday|date_format:”%A,
%B
%e,
%Y”}
{$yesterday|date_format:”%H:%M:%S”}
eg:
在模板页用
{$goodsadd_time|date_format:"%Y-%m-%d
%H:%M:%S"}
--------------------------
indexphp:
$smarty
=
new
Smarty;
$smarty->assign('currtime',
time());
$smarty->display('indextpl');
indextpl:
{$smartynow|date_format}//格式化当前时间
{$smartynow|date_format:"%H:%M:%S"}
{$currtime|date_format}//格式化传过来的时间
{$currtime|date_format:"%A,
%B
%e,
%Y"}
{$currtime|date_format:":"%Y-%m-%d
%H:%M:%S"}
OUTPUT://以上输出以下结果
Dec
26,
2008
08:55:25
Dec
26,
2008
Friday,
December
26,
2008
2008-08-26
08:55:21
首先说明两点:
1、javasqlDate是继承了javautilDate。
2、javautilDate可以在任意情况下使用,javasqlDate只针对SQL语句使用并且只包含日期而没有时间部分。
javasqlDate不好用,所以根本没必要使用javasqlDate,直接用javautilDate就行,一样可以跟数据库字段关联起来。
获取系统时间的三种方式:
1、new javautilDate()
2、CalendargetInstance()getTime()
3、直接在写sql的时候用now(),例如insert into t_user(id, name, createTime) values ('xx', 'xxx', now())
有两种方法:
方法一:用javautilDate类来实现,并结合javatextDateFormat类来实现时间的格式化,看下面代码:
import javautil;
import javatext;
//以下默认时间日期显示方式都是汉语语言方式
//一般语言就默认汉语就可以了,时间日期的格式默认为MEDIUM风格,比如:2008-6-16 20:54:53
//以下显示的日期时间都是再Date类的基础上的来的,还可以利用Calendar类来实现见类TestDate2java
public class TestDate {
public static void main(String[] args) {
Date now = new Date();
Calendar cal = CalendargetInstance();
DateFormat d1 = DateFormatgetDateInstance(); //默认语言(汉语)下的默认风格(MEDIUM风格,比如:2008-6-16 20:54:53)
String str1 = d1format(now);
DateFormat d2 = DateFormatgetDateTimeInstance();
String str2 = d2format(now);
DateFormat d3 = DateFormatgetTimeInstance();
String str3 = d3format(now);
DateFormat d4 = DateFormatgetInstance(); //使用SHORT风格显示日期和时间
String str4 = d4format(now);
DateFormat d5 = DateFormatgetDateTimeInstance(DateFormatFULL,DateFormatFULL); //显示日期,周,时间(精确到秒)
String str5 = d5format(now);
DateFormat d6 = DateFormatgetDateTimeInstance(DateFormatLONG,DateFormatLONG); //显示日期。时间(精确到秒)
String str6 = d6format(now);
DateFormat d7 = DateFormatgetDateTimeInstance(DateFormatSHORT,DateFormatSHORT); //显示日期,时间(精确到分)
String str7 = d7format(now);
DateFormat d8 = DateFormatgetDateTimeInstance(DateFormatMEDIUM,DateFormatMEDIUM); //显示日期,时间(精确到分)
String str8 = d8format(now);//与SHORT风格相比,这种方式最好用
Systemoutprintln("用Date方式显示时间: " + now);//此方法显示的结果和CalendargetInstance()getTime()一样
Systemoutprintln("用DateFormatgetDateInstance()格式化时间后为:" + str1);
Systemoutprintln("用DateFormatgetDateTimeInstance()格式化时间后为:" + str2);
Systemoutprintln("用DateFormatgetTimeInstance()格式化时间后为:" + str3);
Systemoutprintln("用DateFormatgetInstance()格式化时间后为:" + str4);
Systemoutprintln("用DateFormatgetDateTimeInstance(DateFormatFULL,DateFormatFULL)格式化时间后为:" + str5);
Systemoutprintln("用DateFormatgetDateTimeInstance(DateFormatLONG,DateFormatLONG)格式化时间后为:" + str6);
Systemoutprintln("用DateFormatgetDateTimeInstance(DateFormatSHORT,DateFormatSHORT)格式化时间后为:" + str7);
Systemoutprintln("用DateFormatgetDateTimeInstance(DateFormatMEDIUM,DateFormatMEDIUM)格式化时间后为:" + str8);
}
}
运行结果:
用Date方式显示时间: Mon Jun 16 20:54:53 CST 2008
用DateFormatgetDateInstance()格式化时间后为:2008-6-16
用DateFormatgetDateTimeInstance()格式化时间后为:2008-6-16 20:54:53
用DateFormatgetTimeInstance()格式化时间后为:20:54:53
用DateFormatgetInstance()格式化时间后为:08-6-16 下午8:54
用DateFormatgetDateTimeInstance(DateFormatFULL,DateFormatFULL)格式化时间后为
:2008年6月16日 星期一 下午08时54分53秒 CST
用DateFormatgetDateTimeInstance(DateFormatLONG,DateFormatLONG)格式化时间后为
:2008年6月16日 下午08时54分53秒
用DateFormatgetDateTimeInstance(DateFormatSHORT,DateFormatSHORT)格式化时间后
为:08-6-16 下午8:54
用DateFormatgetDateTimeInstance(DateFormatMEDIUM,DateFormatMEDIUM)格式化时间
后为:2008-6-16 20:54:53
方法二:用javautilCalendar类来实现,看下面:
import javautil;
import javatext;
//以下是利用Calendar类来实现日期时间的,和Date类相比较比较简单
public class TestDate2 {
public static void main(String[] args) {
Calendar ca = CalendargetInstance();
int year = caget(CalendarYEAR);//获取年份
int month=caget(CalendarMONTH);//获取月份
int day=caget(CalendarDATE);//获取日
int minute=caget(CalendarMINUTE);//分
int hour=caget(CalendarHOUR);//小时
int second=caget(CalendarSECOND);//秒
int WeekOfYear = caget(CalendarDAY_OF_WEEK);
Systemoutprintln("用CalendargetInstance()getTime()方式显示时间: " + cagetTime());
Systemoutprintln("用Calendar获得日期是:" + year +"年"+ month +"月"+ day + "日");
Systemoutprintln("用Calendar获得时间是:" + hour +"时"+ minute +"分"+ second +"秒");
Systemoutprintln(WeekOfYear);//显示今天是一周的第几天(我做的这个例子正好是周二,故结果显示2,如果你再周6运行,那么显示6)
}
}
运行结果是:
用CalendargetInstance()getTime()方式显示时间: Mon Jun 16 21:54:21 CST 2008
用Calendar获得日期是:2008年5月16日
用Calendar获得时间是:9时54分21秒
2
总结:中的来说,方法二是最方便的,方法一显得分笨拙,不过看个人喜欢了。
还有一种方法利用SystemcurrentTimeMillis()也可以。
没有完整程序, 不过能提供一点资料
int gettimeofday(struct timeval tv,struct timezone tz);
这个函数可以获取当前时间, 貌似只要第一个结构体就行了
struct timeval
{
time_t tv_sec; //秒 [long int]
suseconds_t tv_usec; //微秒 [long int], (10E-6 second)
};
struct timeval
{
long tv_sec;
long tv_usec;
};
然后取微秒的前三位就是小数了, 之后把秒 tv_sec 转化为 tm 格式, 参数用秒的指针就行
struct tm gmtime(const time_t t);
//转换成格林威治时间。有时称为GMT或UTC。
struct tm localtime(const time_t t);
//转换成本地时间。它可以透过修改TZ环境变数来在一台机器中,不同使用者表示不同时间
下面是tm的部分参数
int tm_sec; //tm_sec表「秒」数,在[0,61]之间,多出来的两秒是用来处理跳秒问题用的。/ Seconds: 0-59 (K&R says 0-61) /
int tm_min; //tm_min表「分」数,在[0,59]之间。
int tm_hour; //tm_hour表「时」数,在[0,23]之间。
int tm_mday; //tm_mday表「本月第几日」,在[1,31]之间。
int tm_mon; //tm_mon表「本年第几月」,在[0,11]之间。
int tm_year; //tm_year要加1900表示那一年。 / / 年份,其值从1900开始 //
int tm_wday; //tm_wday表「本周第几日」,在[0,6]之间。 / Days since Sunday (0-6) / /其中0代表星期天,1代表星期一,以此类推 /
int tm_yday; //tm_yday表「本年第几日」,在[0,365]之间,闰年有366日。 /其中0代表1月1日,1代表1月2日,以此类推 //
int tm_isdst; //tm_isdst表是否为「日光节约时间」
------------------------------华丽丽的分割线--------------------------------------------------
由于很长时间没编程了, 也没有Linux环境, 我就简单写几行代码, 仅作参考
#include <stdioh>
#include <timeh>
#include <sys/timeh>
#include<unistdh>
//这四个不一定够用了
struct timeval tv;
struct timezone tz;
struct tm p_tm;
//变量没有初始化习惯不好,不要学
gettimeofday(&tv, &tz);
p_tm = gmtime( (const time_t )&tvtv_sec );
字符串的组装尤其格式问题自己解决吧
年 p_tm->tm_year+ 1900
月 p_tm->tm_mon+ 1
日 p_tm->tm_mday
时 p_tm->tm_hour+ 1
分 p_tm->tm_min+ 1
秒 p_tm->tm_sec+ 1
小数点后面的部分,注意不够三位还是前面填充0 tvtv_sec/1000
计算时间的方法有以下几种:
1、小时。一般是截止时间减去开始的时间。例如1点到10点,中间是10-1=9个小时。
2、天数。一般是截止时间减去开始的时间加1。例如。1号到10号是10天时间,如果10-1=9,只有9天,实际有10天,所以加1。
3、月数和年数的计算方法应该和天数一样。
相关内容解释
时间的自然单位有3种:日、月和年。它们都是天体运行的周期。
地球不停地自西向东自转,同时沿着椭圆形轨道绕太阳公转。地球上由此产生了昼夜交替和昼夜长短的变化。随着太阳在地面上的直射点不断由东向西移动,昼半球和夜半球在相互交替中,白天变成黑夜,黑夜又变成了白天。
地球自转的结果,产生了天然的时间单位——日。日是地球自转一周的时间,比它更小的单位就是时、分和秒,都是日的等分。
以上就是关于飞鸟加速如何获得时间全部的内容,包括:飞鸟加速如何获得时间、php获取今天某个时间的时间戳的方法、使用Smarty 获取当前日期时间和格式化日期时间的方法详解等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)