阿里云 短信 sdk 导致strtotime时间戳转换错误 相差8小时

本文探讨了一次在定时任务中遇到的日期转换错误,原本应该加一天的时间在日志中显示为当天,经过排查发现是由于阿里云短信SDK内部改变了时区设置。通过重新设置时区为PRC,问题得以解决。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在定时任务中日志发现时间一栏本来应该是加一天


$v['end_time']='1564502400';

$result=day_check($v);//失败了发送短信

if($result){
    Sms::alidayu_new($mobile,$sms_content,$templateCode,1);//这里是通知短信
}


$start_time=date('Y-m-d',strtotime('+1 day', $v['end_time'])) //转换这里应该是8-1号的,但在日志里查看却发现是7-31


add_log($start_time);






检查了半天然后发现转换后的时间相差了8个小时,想到是不是哪里时区被改了,搜索代码里有没有date_default_timezone_set,原来,阿里云短信sdk里了有重新设置了时区,将时间转换,但也发现,有些地方它转换了之后,又重新转回来,可能是我调用的方法没重新转换回来导致的

 

 


$v['end_time']='1564502400';

$result=day_check($v);//失败了发送短信

if($result){
    Sms::alidayu_new($mobile,$sms_content,$templateCode,1);//这里是通知短信
}

//这里重新将时区设置
date_default_timezone_set("PRC");

$start_time=date('Y-m-d',strtotime('+1 day', $v['end_time'])) //转换这里应该是8-1号的,但在日志里查看却发现是7-31


add_log($start_time);

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值