jsp页面中如何将时间戳字符串格式化为时间标签

jsp页面中如何将时间戳字符串格式化为时间标签,第1张

datetagtld文件:

<xml version="10" encoding="ISO-8859-1" > <!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc//DTD JSP Tag Library 12//EN" "http://javasuncom/dtd/web-jsptaglibrary_1_2dtd"> <taglib> <tlib-version>10</tlib-version> <jsp-version>12</jsp-version> <short-name>date</short-name> <uri>http://comdemoutildatejstl/tags</uri> <tag> <name>date</name> <tag-class>comdemoutiljstlJSTLUtil</tag-class> <attribute> <name>value</name> <required>true</required> <rtexprvalue>true</rtexprvalue> </attribute> <attribute> <name>parttern</name> <required>true</required> <rtexprvalue>true</rtexprvalue> </attribute> </tag> </taglib>

在Jsp页面中引用:

<%@ taglib uri="http://comdemoutildatejstl/tags" prefix="date"%>

在Jsp页面中用法:

<date:date value="${time}" parttern="yyyy-MM-dd HH:mm:ss"></date:date></div>

存入mysql时间最简单的方式,就是用内置函数now(),直接在sql语句中使用,例如

insert into student values(id,now(),name);插入数据库student一个数据分别是id,当前时间,和名字。

但是这样存进去的是有格式的,例如2014-04-06 21:00:00,你也可以将这个进行格式化format。

另外一种方式就是在java中获得当前时间的时间戳(字符串)后再存入数据库。

new Timestamp(SystemcurrentTimeMillis());//打印出出一个时间戳,精确到秒并且后面三位随机数。

显示的格式:年-月-日小时:分钟:秒

相关时间参数:

a-"am"或是"pm"

A-"AM"或是"PM"

d-几日,二位数字,若不足二位则前面补零;如:"01"至"31"

D-星期几,三个英文字母;如:"Fri"

F-月份,英文全名;如:"January"

h-12小时制的小时;如:"01"至"12"

H-24小时制的小时;如:"00"至"23"

g-12小时制的小时,不足二位不补零;如:"1"至12"

G-24小时制的小时,不足二位不补零;如:"0"至"23"

i-分钟;如:"00"至"59"

j-几日,二位数字,若不足二位不补零;如:"1"至"31"

l-星期几,英文全名;如:"Friday"

m-月份,二位数字,若不足二位则在前面补零;如:"01"至"12"

n-月份,二位数字,若不足二位则不补零;如:"1"至"12"

M-月份,三个英文字母;如:"Jan"

s-秒;如:"00"至"59"

S-字尾加英文序数,二个英文字母;如:"th","nd"

t-指定月份的天数;如:"28"至"31"

U-总秒数

w-数字型的星期几,如:"0"(星期日)至"6"(星期六)

Y-年,四位数字;如:"1999"

y-年,二位数字;如:"99"

z-一年中的第几天;如:"0"至"365"

可以自由设定显示的内容,连接符号或是显示位置,例如date("m-dH")或者date("dmY");>等

php中的日期处理

加入时间:2004-12-1817:35:22大小:12KB阅读次数:1405

PHP中的日期处理

转贴:xiaxia日期:2004-05-26人气:9

我正打算用PHP编写一种帮助处理系统。我发现我必须知道处理完最后一位客户的问题后已经过去了多长时间?当我过去用ASP时解决这个问题相当简单,ASP有相应的函数DateDiff可以给出两个日期间间隔多少月、多少天和多少秒。当我搜寻完PHP手册后我发现PHP并没有类似的函数。

本文包含以下内容:

1、得到目前的日期和时间-我们有多少种方式

2、改变日期显示的方式-日期和时间的显示形式

3、转换现在的日期为Unix的时间戳值

4、改变日期

a增加时间

b减去时间

c找出两日期之间的间隔

5、为PHP添加DateAdd函数

6、为PHP添加DateDiff函数

得到目前的日期和时间

在Unix中,时间的表示方式为计算从1970年1月1日零时起所过去的秒数,这称为UNIX时间戳(UnixEpoch)。

如果我们有这样一段的代码:

echotime();

将返回值958905820

而此时的时间为2000年5月21日12时43分。

你也许会说这相当不错。当这对我毫无帮助,或者只有一点帮助。在PHP中,对日期处理的函数都必须用到由time()返回的时间戳值。同时,由于PHP在Unix和Windows系统中均使用同样的时间戳值,这就允许你不需要修改代码即可在不同的系统间移植。另外的一个好处是time()函数返回的是一个整数,你可以将其作为整数字段或文本字段存入数据库,而不必使用特别的日期/时间字段。

你已经基本了解了Unix的时间戳值,现在让我们来展示它的实际用途。

改变日期显示的方式-日期和时间的显示形式

PHP提供两个办法来将Unix的时间戳值转换成为有用的数据。第一个是date()函数。这个函数有两个参数-第一个字符串用于设定你所希望返回的格式,第二个为Unix的时间戳值。

格式化字符串通过一些简单的特殊格式化字符来显示你所希望看到的格式的日期和时间。假设你希望日期以这样的格式显示“18h01Sunday21May”。

我们需要对字符串中的每一部分使用一个特殊格式化字符,你可以从PHP手册中日期和时间函数库中找到。这样的特殊格式化字符数量不少,他们所表示的类似于星期几、月的英文名、用2位或4位数表示的年份,是否是上午(AM)或下午(PM)以及其他。对于这个例子我们需要的特殊字符为:

‘H’-24小时制的小时

‘i’-分钟

‘l’-星期几的英文全名

‘d’-本月的第几日

‘F’-月份的英文全名

因此我们的格式化字符串为”HhildF”,PHP代码为:

echodate("HhildF",time());

当我们执行这段代码,我们发现我们所得到的结果为:

180609Sunday21May

这样的结果看起来有些奇怪。让我们再查一下PHP手册,原来’h’所代表的是12小时制的小时数。这再次证明了一句真理:“计算机只做你所告诉它该做的,而不是你想要它做的”。我们有两个选择。第一个是在h前使用转义字符“”:

echodate("HhildF",time());

我们得到这样的结果:

18h12Sunday21May

这正是我们所要的。但如果我们在一个十分复杂的句子中需要包含日期和时间,我们是否需要对每个字符使用转义字符

答案当然是不。我们使用另一个函数strftime()。

strftime()有两个好处。第一个好处我们并不在本文讨论范围内-如果你使用setlocale()函数,你可以通过strftime得到相应语言的月份的名称。另外的一个好处是你可以将特别的日期和时间的格式化字符包含在你的字符串中。这同时也意味着无论你是否要学习date()函数的所有特殊格式化字符,你都必须学习一整套完全不同的格式化字符。

strftime()工作的方式和date()没有什么不同,除了特殊格式化字符的前面必须添加一个百分号%。如果用strftime()函数,前面例子的代码如下:

echostrftime("%Hh%M%A%d%b",time());

结果为:

18h24Sunday21May

这也许看起来将简化繁,但考虑一下如果你所需要的显示的为"TodayisSunday21May2000Thetimeissomewherecloseto18h24"我想使用date()函数无疑令人感到厌烦。

在开始的时候,我提及我们有两种方式可以从Unix时间戳值中得到有用的数据。我们刚刚了解了date()和strftime()。另一个getdate()。这个函数只需要Unix的时间戳值作为参数,而函数的返回值为日期和时间的数组

js 中把 unix 时间戳转换为 Date 很简单,可以有两种方式:

1、新建一个日期对象并把时间戳作为参数传进去就可以了:

var timestamp = 1371466996385926;

var date = new Date(timestamp  1000); // js 中是以毫秒为单位要乘以 1000

2、对于已经存在的日期对象,调用 setTime 方法设置时间戳:

var date = new Date();

var timestamp = 1371466996385926;

datesetTime(timestamp  1000); // js 中是以毫秒为单位要乘以 1000

对于格林威治时间和本地时间, js 提供了不同方法(toGMTString(), toUTCString(), toLocaleString())输出,在需要格式化为字符串的时候调用不同方法就可以了。

将时间戳转换成日期格式:

// 简单的一句代码

var date = new Date(时间戳); //获取一个时间对象 注意:如果是uinx时间戳记得乘于1000。比如php函数time()获得的时间戳就要乘于1000

/----------下面是获取时间日期的方法,需要什么样的格式自己拼接起来就好了----------/

dategetFullYear();//获取完整的年份(4位,1970)

dategetMonth();//获取月份(0-11,0代表1月,用的时候记得加上1)

dategetDate();//获取日(1-31)

dategetTime();//获取时间(从197011开始的毫秒数)

dategetHours();//获取小时数(0-23)

dategetMinutes();//获取分钟数(0-59)

dategetSeconds();//获取秒数(0-59)

//更多好用的方法可以到这查找 -> http://wwww3schoolcomcn/jsref/jsref_obj_dateasp

// 例子,比如需要这样的格式:yyyy-MM-dd hh:mm:ss

var date = new Date(1398250549490);

Y = dategetFullYear() + '-';

M = (dategetMonth()+1 < 10 '0'+(dategetMonth()+1) : dategetMonth()+1) + '-';

D = dategetDate() + ' ';

h = dategetHours() + ':';

m = dategetMinutes() + ':';

s = dategetSeconds();

consolelog(Y+M+D+h+m+s); //呀麻碟

//输出结果:2014-04-23 18:55:49

将日期格式转换成时间戳:

// 也很简单

date = new Date('2014-04-23 18:55:49:123'); //传入一个时间格式,如果不传入就是获取现在的时间了,就这么简单。

// 有三种方式获取

time1 = dategetTime()

time2 = datevalueOf()

time3 = Dateparse(date)

// 三种获取的区别

第一、第二种:会精确到毫秒

第三种:只能精确到秒,毫秒将用0来代替

// 比如上面代码输出的结果(一眼就能看出区别):

// 1398250549123

// 1398250549123

// 1398250549000

注意:获取到的时间戳除于1000就可以获得unix的时间戳了,在传值给PHP时用得到。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/12175423.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存