簡體   English   中英

在php中獲取今天和昨天的時間戳

[英]Get timestamp of today and yesterday in php

如何在php中使用strtotime()函數獲取今天、昨天和前天12點的時間戳?

12 點鍾是一個變量,可由用戶更改。

$hour = 12;

$today              = strtotime($hour . ':00:00');
$yesterday          = strtotime('-1 day', $today);
$dayBeforeYesterday = strtotime('-1 day', $yesterday);

strtotime 支持許多可以使用的有趣的修飾符

$hour = 12;

$today              = strtotime("today $hour:00");
$yesterday          = strtotime("yesterday $hour:00");
$dayBeforeYesterday = strtotime("yesterday -1 day $hour:00");

echo date("Y-m-d H:i:s\n", $today);
echo date("Y-m-d H:i:s\n", $yesterday);
echo date("Y-m-d H:i:s\n", $dayBeforeYesterday);

它按預期工作:

2011-01-24 12:00:00
2011-01-23 12:00:00
2011-01-22 12:00:00

OO 等價物

$iHour = 12;

$oToday = new DateTime();
$oToday->setTime($iHour, 0);

$oYesterday = clone $oToday;
$oYesterday->modify('-1 day');

$oDayBefore = clone $oYesterday;
$oDayBefore->modify('-1 day');

$iToday     = $oToday->getTimestamp();
$iYesterday = $oYesterday->getTimestamp();
$iDayBefore = $oDayBefore->getTimestamp();

echo "Today: $iToday\n";
echo "Yesterday: $iYesterday\n";
echo "Day Before: $iDayBefore\n";

您可以使用DateTime對象輕松找到任何日期,它非常靈活

$yesterday = new DateTime('yesterday');
echo $yesterday->format('Y-m-d');

$firstModayOfApril = new DateTime('first monday of april');
echo $firstModayOfApril->format('Y-m-d');

$nextMonday = new DateTime('next monday');
echo $nextMonday->format('Y-m-d');

昨天開始一天

$oDate = new DateTime(); 
$oDate->modify('-1 day'); 
echo $oDate->format('Y-m-d 00:00:00');

結果

2014-11-05 00:00:00

這里所有的答案都太長而且臃腫,每個人都喜歡單行;)

$yesterday = Date('Y-m-d', strtotime('-1 day'));

(或者,如果您是美國人,您可以將日期單位順序隨機化為 m/d/y(或您使用的任何東西),並使用杯、加侖、英尺和馬作為單位......)

由於PHP 7,你可以寫類似這樣

$today = new \DateTime();
$yesterday = (clone $today)->modify('-1 day');
$dayBefore = (clone $yesterday)->modify('-1 day');
// Then call ->format('Y-m-d 00:00:00'); on each objects

您還可以將new DateTime("now")用於今天new DateTime("1 day ago")用於昨天,或者全部都可以通過strtotime php 函數進行解析。

然后根據需要格式化。

$timeStamp = time();
// $timeStamp = time() - 86400;

if (date('d.m.Y', $timeStamp) == date('d.m.Y')) {    
  echo 'Today'; 
} elseif (date('d.m.Y', $time) == date('d.m.Y', strtotime('-1 day'))) {     
  echo 'Yesterday';
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM