IOS 时间字符串转换时间戳失败问题

链接:https://pan.baidu.com/s/1nw6VWoD 密码:1peh

  有时候获取到的时间带有毫秒数或者是(2018-2-6 11:11:11)格式的(别说你没遇到过,也别什么都让后台转好给你,程序员就是在长跑,短时间内看不出什么,但一年两年后,有的人成了大神,有的人却还是只会切图),这样的字符串在ie11和IOS系统上jquery的getTime()无法将其转为时间戳(谷歌,安卓(华为)可以)。

  本宝宝致力于高版本IE网站,和移动端H5网页小游戏(比如答题游戏,大转盘等等)开发,低版本IE的坑在刚毕业的时候踩过,现在不想去碰了,毕竟马云爸爸都不支持低版本IE了。

  demo在文章开头,下面分析代码:

  大家都知道jquery获取当前时间戳是new Date().getTime(); 而一般转换某时间(比如 bb = "2018/2/6 11:11:11")成时间戳的代码如下。

  

var bb = "2018/2/6 11:11:11"var timeb = new Date(bb).getTime();

  However,有种时间是用“-”连接年月日的(2018-2-6 11:11:11),甚至是带毫秒的(2018-2-6 11:11:11.3)(也许是自家的瓜皮后台给你的,也许是第三方的坑爹后台写的接口里面获取的),这种情况下,getTime();会在IOS和ie11上报NaN。代码和效果图如下:

var bb = "2018-2-6 11:11:11.3"
var timeb = new Date(bb).getTime();

  大家第一时间想到了把毫秒去掉,把“-”转成“/”。but 转换连接符容易,去掉毫秒又该怎么去掉,这里向大家介绍一种方法substr。这个方法可用获取字符串的第N位到第M位,可用实现取某几位字符,也可以实现手机号中间几位变成***,这里我将拿它实现删除毫秒。代码如下:

var bb = "2018-2-6 11:11:11.3"
console.log(bb.substr(0,bb.lastIndexOf(".")))var timec = new Date(bb.substr(0,bb.lastIndexOf(".")).replace(/-/g,"/")).getTime();

lastIndexOf() 方法可返回一个指定的字符串值最后出现的位置,在一个字符串中的指定位置从后向前搜索。用substr获取字符串从第开头到 "." 。获取到 2018-2-6 11:11:11 。然后用正则转成 2018/2/6 11:11:11。接下来就能用getTime()转成时间戳了。

原文地址:https://www.cnblogs.com/ovocake/p/8425536.html

时间: 2024-10-15 02:16:34

IOS 时间字符串转换时间戳失败问题的相关文章

用shell将时间字符串与时间戳互转

date的详细用户可以参考下面的 http://www.cnblogs.com/xd502djj/archive/2010/12/29/1919478.html date 的具体用法可以查看另外一篇博文 <shell date 命令详解>http://blog.csdn.net/runming918/article/details/7223520 date +%s   可以得到UNIX的时间戳;用shell将时间字符串与时间戳互转:      date -d "2010-10-18

JS 时间字符串与时间戳之间的转换

1.当前时间换时间戳 var timestamp = parseInt(new Date().getTime()/1000); // 当前时间戳 document.write(timestamp); 2.当前时间换日期字符串 var now = new Date(); var yy = now.getFullYear(); //年 var mm = now.getMonth() + 1; //月 var dd = now.getDate(); //日 var hh = now.getHours(

将json形式的时间字符串转换成正常的形式

//重写time的getter方法 //判断addtime和当期的时间差 // < 60分钟  返回 n分钟前 // > 60分钟  返回 n小时前 //超过24小时  返回 -月-日 - (NSString *)time{ // 1 先把json中的数字转换成日期对象 //把拿到的json中的时间的字符串转换成我们熟悉的时间格式 NSDate *date = [NSDate dateWithTimeIntervalSince1970:[self.addtime intValue]]; //

ios时间格式转换

//实例化一个NSDateFormatter对象 NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; //设定时间格式,这里可以设置成自己需要的格式 [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"]; //用[NSDate date]可以获取系统当前时间 NSString *currentDateStr = [dateFormatter stringFr

时间字符串以及时间戳解析

项目中用到了许多需要处理时间的地方,专门写了一个类来进行处理.多年之后当我再次看到这个东西时希望我可以微笑面对. 首先是.h文件 #import <Foundation/Foundation.h> #import "ALUserDetailAccount.h" #import "ALLMFTiXianListModel.h" @interface LMFAnalysisTime : NSObject #pragma mark --将时间转换成星期 + (

时间格式转换 - 时间戳 、、、、

js中的日期格式化 function timeStamp2String(time) { var datetime = new Date(); datetime.setTime(time); var year = datetime.getFullYear(); var month = datetime.getMonth() + 1 < 10 ? "0" + (datetime.getMonth() + 1) : datetime.getMonth() + 1; var date =

IOS 十六进制字符串转换成UIColor

/** * 十六进制转换成UIColor * * @param stringToConvert 十六进制字符串 * * @return UIColor */ +(UIColor *) hexStringToColor: (NSString *) stringToConvert { NSString *cString = [[stringToConvert stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCha

时间格式转换/时间戳的转换

1.Thu Mar 07 2019 12:00:00 GMT+0800 (中国标准时间) 转换为 2019-03-07 12:00:00 const d = new Date(Thu Mar 07 2019 12:00:00 GMT+0800 (中国标准时间))const resDate = d.getFullYear() + '-' + this.p((d.getMonth() + 1)) + '-' + this.p(d.getDate()) const resTime = this.p(d

Java将CST的时间字符串转换成需要的日期格式字符串

已知得到的Date类型的变量meettingdate 的值为Sun Dec 16 10:56:34 CST :现在要将它改为yyyy-MM-dd类型或yyyy年MM月dd日: 变为yyyy年MM月dd日: SimpleDateFormat dsf = new SimpleDateFormat("yyyy年MM月dd日"); String dateF = dsf.format(meettingdate); System.out.println(formatStr); 变为yyyy-MM-