drj14664 2014-02-25 21:42
浏览 26
已采纳

PHP日期函数为周误差

I am trying to create a function which will take a sent date and then get all dates till a week ago. I have had a look at the follow question and it does something similar to what I am trying to do. So using the code in the question here is what I have:

$currentDay = "2014-02-25";
for ($i = 0 ; $i < 7 ; $i++) {
    echo date('Y-m-d', $currentDay) . '<br />';
    $currentDay -= 24 * 3600;
}

When running this I get the following output:

1970-01-01
1969-12-31
1969-12-30
1969-12-29
1969-12-28
1969-12-27
1969-12-26

How can I make it that I get this instead:

2014-02-25
2014-02-24
2014-02-23
2014-02-22
2014-02-21
2014-02-20
2014-02-19
2014-02-18

Is there a problem with the way the date function has been used?

  • 写回答

2条回答 默认 最新

  • dsljpwi494719 2014-02-25 21:43
    关注

    You need to wrap your date variable in strtotime(), the second argument for the date() function accepts a Unix timestamp which is why you're getting 1969/1970 etc - when incorrect formats are passed into date(), it defaults to the Unix epoch which is Jan 1 1970.

    $currentDay = strtotime("2014-02-25");
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥60 许可证msc licensing软件报错显示已有相同版本软件,但是下一步显示无法读取日志目录。
  • ¥15 Attention is all you need 的代码运行
  • ¥15 一个服务器已经有一个系统了如果用usb再装一个系统,原来的系统会被覆盖掉吗
  • ¥15 使用esm_msa1_t12_100M_UR50S蛋白质语言模型进行零样本预测时,终端显示出了sequence handled的进度条,但是并不出结果就自动终止回到命令提示行了是怎么回事:
  • ¥15 前置放大电路与功率放大电路相连放大倍数出现问题
  • ¥30 关于<main>标签页面跳转的问题
  • ¥80 部署运行web自动化项目
  • ¥15 腾讯云如何建立同一个项目中物模型之间的联系
  • ¥30 VMware 云桌面水印如何添加
  • ¥15 用ns3仿真出5G核心网网元