导航:首页 > 编程语言 > js数字时间格式转换

js数字时间格式转换

发布时间:2025-01-18 05:13:39

1. javascript秒转换日时分秒格式

function formatDate(){
var milliseconds=2698169*1000;//秒变微秒
var dat = new Date(milliseconds);//生成日期
var year = dat.getFullYear();//取得年
var month = dat.getMonth()+1; //取得月,js从0开始取,所以+1
var date1 = dat.getDate(); //取得天
var hour = dat.getHours();//取得小时
var minutes = dat.getMinutes();//取得分钟
var second = dat.getSeconds();//取得秒
alert(dat+" | "+year+"年"+month+"月"+date1+"日"+hour+"时"+minutes +"分"+second+"秒" );
}

2. JS日期格式的转换

<script>
var myDate = new Date(1314005630000+0800);
document.write(myDate);
</script>

3. 前端JS如何将UTC世界时间格式转换为本地时间格式

背景

在前后端数据接口通信中,后台返回的时间往往是UTC格式的,即2020-10-12T10:31:35.891724+00:00这种,这可能是因为在数据库中存储时间格式选择的是TIMESTAMP。

作为前端,我们需要将其转换为标准的本地格式,并用“YYYY-MM-DDHH:mm:ss”这种格式呈现给用户,用户才能看得懂。

那么通常情况下,怎么将他们进行转换呢?

探究

先来理解下UTC时间和本地时间

以北京为例,我在写这篇博客的时候,时间是:

vard=newDate()d.toLocaleTimeString()//"上午10:46:42"

而此时的UTC时间为:

d.toUTCString()//"Tue,13Oct202002:46:42GMT"

也就是说,我所在的北京(东八区)时间为上午的10点,而此时的UTC时间(世界时间)为凌晨2点,所以东八区相比于utc时间,提前了8个小时。

可能有的小伙伴迷糊了,为什么是提前了8个小时?

这就牵扯到了全球时区的划分,众所周知:

??全球共24个时区,每个相邻时区的跨度为一小时。

??时区的划分,以零时区为基准,向东则加,向西则减,简称东加西减。

时区

由于地球的自转,造成了我们看到的太阳是东升西落的,对于一个很大的地域而言,东边总是比西边先看到太阳。

比如对于中国而言,下午6点,北京就已经是傍晚了,而新疆地区的傍晚,可能在下午7点以后。如果以北京为例,太阳到达近地点的时间是中午12点,而新疆呢,太阳到达近地点可能在13点(数据不很精确)。

而在世界范围呢,每个地区,都把太阳到达近地点的时间看作是一天中的中午12点,这就导致全球从东向西,全球24个时区会依次度过自己时区的12点

为了让各地时间统一起来,方便交流,就把全球划分为24个时区(因为地球自转一周是24个小时),从零时区开始,东加西减,用一个时间格式来表示,这就是UTC(世界时间)

那么,对于一个后台返回的标准时间(以2020-10-12T10:31:35.891724+00:00为例)来说,最后面的+00:00则告诉了你当前时间是以哪个时区来计算的(+00:00代表了零时区)。

比如,将2020-10-12T10:31:35.891724+00:00转换成东八区时间也即北京时间:

newDate('2020-10-12T10:31:35.891724+00:00')//MonOct12202018:31:35GMT+0800(中国标准时间)

可以看到后面有+0800,意味着这是东八区的本地时间,即世界时间向东跨越了八个时区(加了8个小时)就是你看到的北京本地时间。

转换

上面讲的其实没什么用,只是帮助大家理解一些基础的概念。

想要将复杂的UTC转成需要的格式,最好当然是寻找插件来帮忙了。

1、moment

不会吧?不会吧?大名鼎鼎的moment不会真的有人不知道吧?

importmomentform'moment'vartime='2020-10-12T10:31:35.891724+00:00'moment(newDate(time)).format('YYYY-MM-DDHH:mm:ss')//"2020-10-1218:31:35"

moment还有个专门的时区处理类库,点我直达

用了这个类库,也能正确处理时区之间的转换哦

首先安装这个库npminstallmoment-timezone,然后就可以愉快的写代码

varmoment=require('moment-timezone');vartz='Asia/Choibalsan'//时区vartime='2020-10-12T10:31:35.891724+00:00'moment.utc(time).tz(tz).format()//"2020-10-12T18:31:35+08:00"moment.utc(time).tz(tz).format('YYYY-MM-DDHH:mm:ss')//"2020-10-1218:31:35"

当然这里还需要注意一下,如果你传递的参数是hh:mm:ss而不是HH:mm:ss,那么moment在处理上是有区别的,hh将会采用12小时制,HH则会采用24小时制。

moment.utc(time).tz(tz).format('YYYY-MM-DDhh:mm:ss')//"2020-10-1206:31:35"2、date-fns

看这名称就能猜到,这又是一个处理时间的插件。而且,相比moment一点不虚呢,他是一个类似lodash的工具集,而且是专门针对各种日期的工具集。

而且相比于moment,这个插件相当的轻量。

import{format}from'date-fns'vartime='2020-10-12T10:31:35.891724+00:00'format(newDate(time),'YYYY-MM-DDHH:mm:ss')//"2020-10-1218:31:35"

其他更详细的API大家自己看文档吧,我就不过多的赘述了。

欢迎小伙伴们留言讨论。

作者:晴天同学

4. js 获取当前时间格式怎么转换

仅针对这个问题来说,不需要那么大量的代码即可完成

方案1(适用于中国标准时间):

vardate=newDate(+newDate()+8*3600*1000).toISOString().replace(/T/g,'').replace(/.[d]{3}Z/,'')

方案2(只用于题目中所述的格式转换):

vardate=newDate().toLocaleString().replace(/[年月]/g,'-').replace(/[日上下午]/g,'');

方案3(最准确但最麻烦,不推荐):

vardate=newDate();
varresult=date.getFullYear()+'-'+(date.getMonth()+1)+'-'+date.getDate()+''+date.getHours()+':'+date.getMinutes()+':'+date.getSeconds();

5. jsp 中怎样把日期dd/mm/yyyy 转换成 yyyy-mm-dd 格式

首先如果格式为dd/mm/yyyy的日期为date类型,那么很easy,利用SimpleDateFormat类就可以,具体:
SimpleDateFormat sdt = new SimpleDateFormat();
sdt.setFormat("yyyy-MM-dd");//MM一定是大专写,小写代表分钟
sdt.Format(date);//date就是属你得到的那个dd/mm/yyyy的日期
想转换回来就按上面说的把格式转换回来就ok了
如果是String 类型的,那么估计要费事了,你需要不停的用subString()方法把字符串截取拼接,这个应该是最简单的方法了。
ps:代码是我手写的,有些可能拼写有误,见谅

阅读全文

与js数字时间格式转换相关的资料

热点内容
qq飞车s车排行榜2017 浏览:671
揭示板网站怎么看 浏览:202
ps文件转换为ai文件吗 浏览:695
苹果升级到一半不动了 浏览:715
w7网络图标怎么设置 浏览:773
2016中国app应用创新峰会 浏览:680
用python写聊天程序 浏览:818
安装win10后是英文版 浏览:509
安卓支付宝停止运行怎么办 浏览:214
如何让文件整理的好 浏览:58
电脑评标专家库网站进不去怎么办 浏览:661
word怎么删除所有标点符号 浏览:423
86版本漫游带战神套 浏览:477
GT编程软件怎么下载和上传 浏览:356
泰坦之旅配置文件 浏览:606
文件柜批发价格如何计算 浏览:118
在北京学java哪里好 浏览:825
视频文件夹怎么起名 浏览:505
mac显示文件夹 浏览:651
mac传文件到linux 浏览:661

友情链接