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?

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");

Try this simple example:

$day = new DateTime("2014-02-25");
for ($i = 0 ; $i <= 7 ; $i++) {
    echo $day->format('Y-m-d'), '<br />';
    $day->modify('-1 day');
}

demo