![](/img/trans.png)
[英]php strtotime last day last month function produces 2 months ago
[英]PHP strtotime(last day) function related issue
我需要顯示從每個最后一個星期六20.00.01到下一個星期六20.00.00的每周銷售報告
我使用以下代碼從當天獲得了上周六和下周六的信息。
<?php
$dt_week_start_date = date('Y-m-d 20:00:01',strtotime("last Saturday"));
$dt_week_end_date = date('Y-m-d 20:00:00',strtotime("next Saturday"));
?>
例如:現在服務器的日期時間是2014年8月15日星期五,那么下面的代碼將為我提供正確的結果。
<?php print(date("d-M-Y H:i:s",strtotime($dt_week_start_date)));?> TO
<?php print(date("d-M-Y H:i:s",strtotime($dt_week_end_date)));?>
Output: 09-Aug-2014 20:00:01 TO 16-Aug-2014 20:00:00
現在,例如:現在服務器的日期時間是2014年8月16日星期六,那么下面的代碼給了我錯誤的結果。
<?php print(date("d-M-Y H:i:s",strtotime($dt_week_start_date)));?> TO
<?php print(date("d-M-Y H:i:s",strtotime($dt_week_end_date)));?>
Output: 09-Aug-2014 20:00:01 TO 23-Aug-2014 20:00:00
所以現在是星期六,2014-08-16 05:43:49,所以它小於$ dt_week_end_date變量的值(2014-08-16 20:00:00),因此它應顯示2014年8月16日20:00: 00,而不是2014年8月23日20:00:00。
請讓我知道我的代碼有什么問題嗎? 先感謝您。
嘗試這個
<?php
$today = date('d-M-Y');
$today_time = strtotime($today);
$dt_week_start_time = strtotime("last saturday")+((20*3600)+ 1);
$dt_week_start_date = date('d-M-Y G:i:s', $dt_week_start_time);
$dt_week_end_time = $dt_week_start_time + (7*3600*24) - 1;
$dt_week_end_date = date('d-M-Y G:i:s', $dt_week_end_time);
echo "Today : ".$today;
echo "\n";
echo "Last Saturday : ".$dt_week_start_date;
echo "\n";
echo "Next Saturday : ".$dt_week_end_date;
?>
輸出:
Today : 16-Aug-2014
Last Saturday : 09-Aug-2014 20:00:01
Next Saturday : 16-Aug-2014 20:00:00
試試下面的東西
$dt_week_start_date = strtotime("last Saturday");
$from = date('d-M-Y 20:00:01', $dt_week_start_date);
$to = date('d-M-Y 20:00:01', $dt_week_start_date + (7 *24 * 60 * 60));
echo $from.' To '.$to;
輸出:
09-Aug-2014 20:00:01 To 16-Aug-2014 20:00:01
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.