safari下时间戳设置 js指定日期的后天的算法

本文介绍了在Safari浏览器中设置特定格式日期时遇到的兼容性问题及解决方案。通过字符串分割与parseInt转换,确保了跨浏览器一致的时间戳设置与日期计算。

safari下设置时间戳不成功时

设置时间戳

var date='2017-6-8';
var Time=new Date(date);
//在fireFox、chrome等浏览器下都显示:
// Thu Jun 08 2017 00:00:00 GMT+0800 (中国标准时间)
//在safari下显示: Invalid Date

以下方法为修复Safari下兼容问题

var arr=[];
arr=date.split('-');    
var Time=new Date(parseInt(arr[0]),parseInt(arr[1])-1,parseInt(arr[2]));
console.log(Time);

//返回结果
//safari:Thu Jun 08 2017 00:00:00 GMT+0800 (Öйú±ê׼ʱ¼ä)
//chrome: Thu Jun 08 2017 00:00:00 GMT+0800 (中国标准时间)

设置指定天数的后天

chrome下


var date='2017-6-8';
var Time=new Date(date);
//后天
Time.setDate(Time.getDate()+2);
console.log(Time);

返回结果:Sat Jun 10 2017 00:00:00 GMT+0800 (中国标准时间);

safari下

var arr=[];
arr=date.split('-');    
var Time=new Date(parseInt(arr[0]),parseInt(arr[1])-1,parseInt(arr[2])+2);
console.log(Time);

返回结果:Sat Jun 10 2017 00:00:00 GMT+0800 (Öйú±ê׼ʱ¼ä);

在 JavaScript 中,将时间戳转换为定日格式可以通过自定义函数实现。下面介绍一个支持自定义日格式的方法 `formatTimestamp`: ```javascript /** * 格式化时间戳定格式的日字符串 * @param {number} timestamp - 时间戳 * @param {string} [format='yyyy-mm-dd'] - 日格式,默认 "yyyy-mm-dd" * @returns {string} - 格式化后的日字符串 */ function formatTimestamp(timestamp, format = 'yyyy-mm-dd') { const date = new Date(timestamp); // 获取日相关值 const year = date.getFullYear(); const month = String(date.getMonth() + 1).padStart(2, '0'); // 月份补零 const day = String(date.getDate()).padStart(2, '0'); // 日补零 const hours = String(date.getHours()).padStart(2, '0'); // 小时补零 const minutes = String(date.getMinutes()).padStart(2, '0'); // 分钟补零 const seconds = String(date.getSeconds()).padStart(2, '0'); // 秒补零 // 替换格式中的占位符 return format .replace('yyyy', year) .replace('mm', month) .replace('dd', day) .replace('hh', hours) .replace('ii', minutes) .replace('ss', seconds); } // 使用示例 const timestamp = 1681286070508; const formattedDate = formatTimestamp(timestamp, 'yyyy/mm/dd hh:ii:ss'); console.log(formattedDate); // 输出格式化后的日字符串 ``` 上述代码定义了 `formatTimestamp` 函数,它接收时间戳和日格式作为参数,返回格式化后的日字符串,支持自定义日格式,如 “yyyy-mm-dd”、“yyyy/mm/dd hh:ii:ss” 等,确保日始终以两位数显示[^2]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值