js 里面的toLocaleString() 方法是怎么回事
发布时间:2025-05-20 14:11:12 发布人:远客网络
一、js 里面的toLocaleString() 方法是怎么回事
这个函数用于以字符串的形式返回当前Date对象
时间日期有两种,一种是给机器看的,就是一排数字,另外一种就是让人能看懂的时间格式,那么人看的这种格式就是本地格式。对于本地格式,每个浏览器的呈现方式也不尽相同
//定义一个"2013-07-2113:12:59231"的Date对象
vardate=newDate(2013,6,21,13,12,59,231);
document.writeln(date.toLocaleString());
//Chrome:2013年7月21日下午1:12:59
//FireFox:2013/7/21下午1:12:59
//定义一个"公元前200-06-2808:24:35105"的Date对象
vardate2=newDate(-199,5,28,8,24,35,105);
document.writeln(date2.toLocaleString());
//IE:SunJun2808:24:35UTC+0800200B.C.
//Chrome:200年7月1日上午8:30:27(缺少负号,日期存在问题)
//FireFox:200/6/28上午8:30:32(缺少负号)
二、js,toLocaleString方法为什么能保留2位小数呢
1、toLocaleString的意思,就是按照当前电脑的设置来转换字符串,而通常windows系统对小数点的处理默认就是保留两位小数的。
2、你可以自己查一下你的电脑对保留小数点位数的处置方式,当然你也可以修改它。以Win7为例:控制面板->区域和语言->格式->其他设置->数字
3、这也意味着,在不同的电脑上,toLocaleString会出现不同的结果,除非电脑都保持默认设置,没有去改动。
三、js怎么把toLocaleString转成时间戳
1、不是很确定的你的目的,但是以我的经验这样做法可能不够正确,越是跨地区的越是需要时间戳。我只能猜测到你可能希望在美国和德国等等地区的用户只显示中国当地的时间。但是你这种的做法也可能是错误。应该是var nowtime=(new Date().toLocaleString('zh',{ timeZone:'asia/shanghai', hours12: false})),加上timeZone才能让海外的用户得到准确的中国时间;而且你可以先获取时间戳再做本地时间转换。
2、var timestamp= date.getTime();
3、var nowTime= date.toLocaleString('zh',{ timeZone:'asia/shanghai', hours12: false})
4、如果是后端传给你就是字符串的日期,你要他们尽量给你时间戳。如果是自己拿个时间戳应该不是什么问题。
5、如果你非得这样做必须替换掉PM或者下午这些词。我做的很粗暴,随便看看就好。
6、时间比较复杂的话建议用moment.js和day.js
7、var nowtime=(new Date()).toLocaleString(('zh',{ hour12: false}))
8、function localeDateStringtoTimestamp(dateString){
9、 if(dateString.split('上午').length== 2){
10、 var _date= dateString.split('上午').join("");
11、 return new Date(_date).getTime()
12、 if(dateString.split('下午').length== 2){
13、 var _dateArray= dateString.split('下午');
14、 var hms= _dateArray[1].split(":");
15、 hms[0]= parseInt(hms[0])< 10?(parseInt(hms[0])+ 12)+'': hms[0];
16、 return new Date(ymd+ hms.join(':')).getTime();
17、console.log(localeDateStringtoTimestamp(nowtime))