H5开发:IOS vs Android 之JS时间戳

发送到手机
使用"扫一扫"即可发送至手机

某天开发遇到时间戳提交的bug,

故事一开始是这样的,将表单中的时间提交到后台,进行验证!


// 获取当前时间戳(以s为单位)

var timestamp = Date.parse(new Date("2014-07-10 10:21:12"));

timestamp = timestamp / 1000;

//当前时间戳为:1404958872

console.log("当前时间戳为:" + timestamp);

神马问题都没有


不料ios直接抛出NaN,哭了

ios     Date.parse(new Date("2014-07-10 10:21:12"))

// 结果为NaN,


东猜猜西测测,方法自然现


解决方法:

判断是否为ios /(iPhone|iPad|iPod|iOS)/i.test(navigator.userAgent)

将日期的中"-"转化为"/";

var time="2014-07-10 10:21:12";

time=time.replace('-','/').replace('-','/')

ios     Date.parse(new Date(time))

//结果为1404958872000;


附录:

javascript时间戳和日期字符串相互转换


// 获取当前时间戳(以s为单位)

var timestamp = Date.parse(new Date());

timestamp = timestamp / 1000;

//当前时间戳为:1403149534

console.log("当前时间戳为:" + timestamp);


// 获取某个时间格式的时间戳

var stringTime = "2014-07-10 10:21:12";

var timestamp2 = Date.parse(new Date(stringTime));

timestamp2 = timestamp2 / 1000;

//2014-07-10 10:21:12的时间戳为:1404958872 

console.log(stringTime + "的时间戳为:" + timestamp2);


// 将当前时间换成时间格式字符串

var timestamp3 = 1403058804;

var newDate = new Date();

newDate.setTime(timestamp3 * 1000);

// Wed Jun 18 2014 

console.log(newDate.toDateString());

// Wed, 18 Jun 2014 02:33:24 GMT 

console.log(newDate.toGMTString());

// 2014-06-18T02:33:24.000Z

console.log(newDate.toISOString());

// 2014-06-18T02:33:24.000Z 

console.log(newDate.toJSON());

// 2014年6月18日 

console.log(newDate.toLocaleDateString());

// 2014年6月18日 上午10:33:24 

console.log(newDate.toLocaleString());

// 上午10:33:24 

console.log(newDate.toLocaleTimeString());

// Wed Jun 18 2014 10:33:24 GMT+0800 (中国标准时间)

console.log(newDate.toString());

// 10:33:24 GMT+0800 (中国标准时间) 

console.log(newDate.toTimeString());

// Wed, 18 Jun 2014 02:33:24 GMT

console.log(newDate.toUTCString());


H5开发:IOS vs Android 之JS时间戳

H5开发:IOS vs Android 之JS时间戳

分享:

标签: