javascript 分别读取时间中的年、月、日、时、分、秒的方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript 分别读取时间中的年、月、日、时、分、秒的方法相关的知识,希望对你有一定的参考价值。

因为网页的需要,希望用javascript 读取时间,但是需要将年、月、日、时、分、秒以不同的字体、大小等显示,所以希望能将年、月、日、时、分、秒分开进行读取。
打个比方,一般网上的时间代码可以显示为:XXXX年XX月XX日 XX:XX:XX

但是我希望这样显示:
XXXX年(白色,Size=5)
XX月XX日(蓝色,Size=3)
XX时(白色,Size=5)
XX分XX秒(白色,Size=3)

也就是说年、月、日、时、分、秒每个数据的显示都可以分开来。

不知道大家听懂了没,麻烦大家了。
XXXX年(白色,Size=5)
XX月XX日(蓝色,Size=3)
XX时(白色,Size=5)
XX分XX秒(白色,Size=3)

括号中的内容是网页代码的意思啊 。
我希望是这样的 :
<font color="#FFFFFF" size="5">XXXX年</font>
<font color="blue" size="3">XX月XX日</font>
<font color="#FFFFFF" size="5">XX时</font>
<font color="#FFFFFF" size="5">XX分XX秒</font>

意思就是每一个数据我都可以设置字体的颜色、大小等 ,另外 ,因为我基本上对javascript 一点也不懂,所以麻烦大家给完整代码吧 就是直接放到网页就可以显示的那种 ,前面后面有 <script type="text/javascript">和</script>这种格式的 。

还有就是 XX秒 和 XX分 XX时 这几个能弄动态的么 。

javascript 自带有个对象(构造函数),Date().下面是代码:
var myDate = new Date(); //实例一个时间对象;
myDate.getFullYear(); //获取系统的年;
myDate.getMonth()+1; //获取系统月份,由于月份是从0开始计算,所以要加1
myDate.getDate(); // 获取系统日,
myDate.getHours(); //获取系统时,
myDate.getMinutes(); //分
myDate.getSeconds(); //秒
参考技术A getDate() 从 Date 对象返回一个月中的某一天 (1 ~ 31)
getMonth() 从 Date 对象返回月份 (0 ~ 11)//注意月份是从0开始,使用的时候要+1
getFullYear() 从 Date 对象以四位数字返回年份
getHours() 返回 Date 对象的小时 (0 ~ 23)
getMinutes() 返回 Date 对象的分钟 (0 ~ 59)
getSeconds() 返回 Date 对象的秒数 (0 ~ 59))
getMilliseconds() 返回 Date 对象的毫秒(0 ~ 999)
例如:
<script>
var d = new Date()
document.write("Year:"+d.getYear()+"<br>Month:"+(d.getMonth()+1)+"<br>Day:"+d.getDate()+"<br>Hour:"+d.getHours()+"<br>Minutes"+d.getMinutes()+"<br>Seconds:"+d.getSeconds())
</script>本回答被提问者采纳
参考技术B get[UTC]Date( )
Returns the day of the month, in local or universal time. Return values are between 1 and 31.

get[UTC]Day( )
Returns the day of the week, in local or universal time. Return values are between 0 (Sunday) and 6 (Saturday).

get[UTC]FullYear( )
Returns the year in full four-digit form, in local or universal time. JS 1.2; JScript 3.0; ECMA v1.

get[UTC]Hours( )
Returns the hours field, in local or universal time. Return values are between 0 (midnight) and 23 (11 p.m.).

get[UTC]Milliseconds( )
Returns the milliseconds field, in local or universal time. JS 1.2; JScript 3.0; ECMA v1.

get[UTC]Minutes( )
Returns the minutes field, in local or universal time. Return values are between 0 and 59.

get[UTC]Month( )
Returns the month field, in local or universal time. Return values are between 0 (January) and 11 (December).

get[UTC]Seconds( )
Returns the seconds field, in local or universal time. Return values are between 0 and 59.

getTime( )
Returns the internal millisecond representation of the date; that is, returns the number of milliseconds between midnight (UTC) of January 1st, 1970 and the date and time represented by the Date object. Note that this value is independent of timezone.

getTimezoneOffset( )
Returns the difference, in minutes, between the local and UTC representations of this date. Note that the value returned depends on whether daylight savings time is or would be in effect at the specified date.

getYear( )
Returns the year field minus 1900. Deprecated in favor of getFullYear( ).
参考技术C <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
<script language="javascript" type="text/javascript">
<!--
//获得当前时间,刻度为一千分一秒
var initializationTime=(new Date()).getTime();
function showLeftTime()

var now=new Date();
var year=now.getYear();
var month=now.getMonth()+1;
var day=now.getDate();
var hours=now.getHours();
var minutes=now.getMinutes();
var seconds=now.getSeconds();
document.all.show.innerHTML="当前时间:<font size='+5' color='#FFFFF'>"+year+"年</font><font size='+3' color='#000033'>"+month+"月"+day+"日</font>  <font size='+5' color='#FFFFF'>"+hours+"</font>:<font size='+3' color='#000033'>"+minutes+":"+seconds+"</font>";
//一秒刷新一次显示时间
var timeID=setTimeout(showLeftTime,1000);

//-->
</script>
</head>
<body onload="showLeftTime()">
<div style="background-color:#66FF00">
<label id="show"></label><br>
</div>
</body>
</html>

是不是这个意思啊?
如果不对,请HI我
参考技术D function abc()

var now = new Date(2010,7,8,23,59,59);
var yy = now.getYear();
var mm = now.getMonth();
var dd = now.getDate();
var hh = now.getHours();
var mi = now.getMinutes();
var ss = now.getSeconds();
alert(yy);
alert(mm);
alert(dd);
alert(hh);
alert(mi);
alert(ss);

mysql分别获取已有数据date中的年月日

mysql数据库,test表中有一字段Date,类型为date,已有数据,如何分别获取其中的年、月、日?不是获得当前日期哦!

以每24小时作为一份时间(而非自然日),根据用户的配置有两种工作模式:带状模式中,用户仅定义开始日期时,从开始日期(含)开始,每份时间1个分片地无限增加下去;环状模式中,用户定义了开始日期和结束日期时,以结束日期(含)和开始日期(含)之间的时间份数作为分片总数(分片数量固定),以类似取模的方式路由到这些分片里。

1. DBLE 启动时,读取用户在 rule.xml 配置的 sBeginDate 来确定起始时间
2. 读取用户在 rule.xml 配置的 sPartionDay 来确定每个 MySQL 分片承载多少天内的数据
3. 读取用户在 rule.xml 配置的 dateFormat 来确定分片索引的日期格式
4. 在 DBLE 的运行过程中,用户访问使用这个算法的表时,WHERE 子句中的分片索引值(字符串),会被提取出来尝试转换成 Java 内部的时间类型
5. 然后求分片索引值与起始时间的差,除以 MySQL 分片承载的天数,确定所属分片

1. DBLE 启动时,读取用户在 rule.xml 配置的起始时间 sBeginDate、终止时间 sEndDate 和每个 MySQL 分片承载多少天数据 sPartionDay
2. 根据用户设置,建立起以 sBeginDate 开始,每 sPartionDay 天一个分片,直到 sEndDate 为止的一个环,把分片串联串联起来
3. 读取用户在 rule.xml 配置的 defaultNode
4. 在 DBLE 的运行过程中,用户访问使用这个算法的表时,WHERE 子句中的分片索引值(字符串),会被提取出来尝试转换成 Java 内部的日期类型
5. 然后求分片索引值与起始日期的差:如果分片索引值不早于 sBeginDate(哪怕晚于 sEndDate),就以 MySQL 分片承载的天数为模数,对分片索引值求模得到所属分片;如果分片索引值早于 sBeginDate,就会被放到 defaultNode 分片上

与MyCat的类似分片算法对比

中间件
DBLE
MyCat

分片算法种类 date 分区算法 按日期(天)分片
两种中间件的取模范围分片算法使用上无差别

开发注意点
【分片索引】1. 必须是字符串,而且 java.text.SimpleDateFormat 能基于用户指定的 dateFormat 来转换成 java.util.Date
【分片索引】2. 提供带状模式和环状模式两种模式
【分片索引】3. 带状模式以 sBeginDate(含)起,以 86400000 毫秒(24 小时整)为一份,每 sPartionDay 份为一个分片,理论上分片数量可以无限增长,但是出现 sBeginDate 之前的数据而且没有设定 defaultNode 的话,会路由失败(如果有 defaultNode,则路由至 defaultNode)
【分片索引】4. 环状模式以 86400000 毫秒(24 小时整)为一份,每 sPartionDay 份为一个分片,以 sBeginDate(含)到 sEndDate(含)的时间长度除以单个分片长度得到恒定的分片数量,但是出现 sBeginDate 之前的数据而且没有设定 defaultNode 的话,会路由失败(如果有 defaultNode,则路由至 defaultNode)
【分片索引】5. 无论哪种模式,分片索引字段的格式化字符串 dateFormat 由用户指定
【分片索引】6. 无论哪种模式,划分不是以日历时间为准,无法对应自然月和自然年,且会受闰秒问题影响

运维注意点
【扩容】1. 带状模式中,随着 sBeginDate 之后的数据出现,分片数量的增加无需再平衡
【扩容】2. 带状模式没有自动增添分片的能力,需要运维手工提前增加分片;如果路由策略计算出的分片并不存在时,会导致失败
【扩容】3. 环状模式中,如果新旧 [sBeginDate,sEndDate] 之间有重叠,需要进行部分数据迁移;如果新旧 [sBeginDate,sEndDate] 之间没有重叠,需要数据再平衡

配置注意点
【配置项】1. 在 rule.xml 中,可配置项为 <propertyname="sBeginDate"> 、 <propertyname="sPartionDay"> 、 <propertyname="dateFormat"> 、 <propertyname="sEndDate"> 和 <propertyname="defaultNode">
【配置项】2.在 rule.xml 中配置 <propertyname="dateFormat">,符合 java.text.SimpleDateFormat 规范的字符串,用于告知 DBLE 如何解析sBeginDate和sEndDate

【配置项】3.在 rule.xml 中配置 <propertyname="sBeginDate">,必须是符合 dateFormat 的日期字符串

【配置项】4.在 rule.xml 中配置 <propertyname="sEndDate">,必须是符合 dateFormat 的日期字符串;配置了该项使用的是环状模式,若没有配置该项则使用的是带状模式

【配置项】5.在 rule.xml 中配置 <propertyname="sPartionDay">,非负整数,该分片策略以 86400000 毫秒(24 小时整)作为一份,而 sPartionDay 告诉 DBLE 把每多少份放在同一个分片

【配置项】6.在 rule.xml 中配置 <propertyname="defaultNode"> 标签,非必须配置项,不配置该项的话,用户的分片索引值没落在 mapFile 定义
参考技术A mysql> SELECT 'NOW' DisplayMode, NOW() B
-> UNION ALL
-> SELECT 'Second' DisplayMode, Second(NOW()) B
-> UNION ALL
-> SELECT 'Minute' DisplayMode, MINUTE(NOW()) B
-> UNION ALL
-> SELECT 'Hour' DisplayMode, Hour(NOW()) B
-> UNION ALL
-> SELECT 'Day' DisplayMode, DAY(NOW()) B
-> UNION ALL
-> SELECT 'Week' DisplayMode, Week(NOW()) B
-> UNION ALL
-> SELECT 'Month' DisplayMode, Month(NOW()) B
-> UNION ALL
-> SELECT 'Year' DisplayMode, Year(NOW()) B;
+-------------+---------------------+
| DisplayMode | B |
+-------------+---------------------+
| NOW | 2010-10-22 20:43:09 |
| Second | 9 |
| Minute | 43 |
| Hour | 20 |
| Day | 22 |
| Week | 42 |
| Month | 10 |
| Year | 2010 |
+-------------+---------------------+
8 rows in set (0.00 sec)

上面这个 SQL 是 2010-10-22 20:43:09 执行的, 用于测试 获取一个日期里面的各个组成部分的例子。年月日时分秒都有。
参考技术B 把要获取的日期转成字符型的,然后按位接取就得到了,这是一种方法,也是最省事的方法. 参考技术C 分别用YEAR,MONTH,DAY函数,例如
mysql> select * from test;
+------------+
| DATE |
+------------+
| 2011-01-19 |
| 2011-01-19 |
| 2010-06-01 |
| 2010-06-10 |
| 2010-07-10 |
+------------+

mysql> select YEAR(DATE) from test;
+------------+
| YEAR(DATE) |
+------------+
| 2011 |
| 2011 |
| 2010 |
| 2010 |
| 2010 |
+------------+
月:
mysql> select month(DATE) from test ;
+-------------+
| month(DATE) |
+-------------+
| 1 |
| 1 |
| 6 |
| 6 |
| 7 |
+-------------+
日:
mysql> select day(DATE) from test;
+-----------+
| day(DATE) |
+-----------+
| 19 |
| 19 |
| 1 |
| 10 |
| 10 |
+-----------+本回答被提问者采纳
参考技术D YEAR(serial_number) = YEAR YEAR("2001/9/10") =2001
MONTH(serial_number) = MONTH MONTH ("2001/9/10") = 9
DAY(serial_number) = DAY DAY("2001/9/10") = 10

以上是关于javascript 分别读取时间中的年、月、日、时、分、秒的方法的主要内容,如果未能解决你的问题,请参考以下文章

mysql分别获取已有数据date中的年月日

c#中,如何获取日期型字段里的年、月、日?

如何根据R中另一列的日期(月/日/年)计算列的年/月平均值、最大值、最小值等

java 有字符串2014-9-10 11:20如何分别取得月,日,时,分

php页面传来三个int型的年,月,日,怎么将三个数字转成日期格式

如何根据区域设置确定年,月,日订购?