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条)

报告相同问题?

悬赏问题

  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog
  • ¥15 Excel发现不可读取的内容
  • ¥15 关于#stm32#的问题:CANOpen的PDO同步传输问题
  • ¥20 yolov5自定义Prune报错,如何解决?