我今天午夜如何在php中获取时间戳。说它是星期一下午5点,我希望周一(今天)午夜(上午12点)的时间戳已经发生。
谢谢
答案 0 :(得分:200)
$timestamp = strtotime('today midnight');
您可能想看看PHP提供的内容:http://php.net/datetime
答案 1 :(得分:61)
我认为您应该使用新的PHP DateTime对象,因为它没有超出strtotime()具有的32位限制的日期。这是一个如何在午夜获得今天约会的例子。
$today = new DateTime();
$today->setTime(0,0);
或者,如果您使用的是PHP 5.4或更高版本,则可以这样做:
$today = (new DateTime())->setTime(0,0);
然后,您可以使用echo $today->format('Y-m-d');
获取您希望对象输出的格式。
答案 2 :(得分:16)
今天午夜。容易。
$stamp = mktime(0, 0, 0);
答案 3 :(得分:6)
你正在计算太阳直接从你的脚下经过的最近天体事件的时间,根据当地的高中午标准进行调整,并且可能进行调整,以便人们在下班回家后留下足够的日光,以及其他政治因素。
令人生畏吗?实际上这是一个常见的问题,但完整的答案取决于位置:
$zone = new \DateTimeZone('America/New_York'); // Or your own definition of “here”
$todayStart = new \DateTime('today midnight', $zone);
$timestamp = $todayStart->getTimestamp();
“here”的潜在定义列于https://secure.php.net/manual/en/timezones.php
答案 4 :(得分:4)
$today_at_midnight = strtotime(date("Ymd"));
应该给你你想要的东西。
的解释强> 的
我所做的是使用PHP的日期函数来获取今天的日期而不引用任何时间,然后将其传递给'string to time'函数,该函数将日期和时间转换为纪元时间戳。如果没有时间,则假定当天的第一秒。
参考文献: 日期功能:http://php.net/manual/en/function.date.php
答案 5 :(得分:3)
2020年4月19日更新的答案
我们可以做到这一点:
$today = date('Y-m-d 00:00:00');
答案 6 :(得分:1)
$timestamp = strtotime('today midnight');
与
相同$timestamp = strtotime('today');
并且在服务器上的工作量要少一些。
答案 7 :(得分:0)
$midnight = strtotime('midnight');
有效
您也可以尝试一下
strtotime('12am')
或strtotime('[input any time you wish to here. e.g noon, 6pm, 3pm, 8pm, etc]')
。我今天在午夜之前跳过了添加,因为默认是今天。
答案 8 :(得分:0)
以更多对象的方式:
$today = new \DateTimeImmutable('today');
示例:
echo (new \DateTimeImmutable('today'))->format('Y-m-d H:i:s');
// will output: 2019-05-16 00:00:00
和:
echo (new \DateTimeImmutable())->format('Y-m-d H:i:s');
echo (new \DateTimeImmutable('now'))->format('Y-m-d H:i:s');
// will output: 2019-05-16 14:00:35
答案 9 :(得分:0)
如果您使用的是Carbon,则可以执行以下操作。您还可以设置此日期格式以设置Expire
HTTP标头。
Carbon::parse('tomorrow midnight')->format(Carbon::RFC7231_FORMAT)
答案 10 :(得分:-1)
function getTodaysTimeStamp() {
const currentTimeStamp = Math.round(Date.now() / 1000);
const startOfDay = currentTimeStamp - (currentTimeStamp % 86400);
return { startOfDay, endOfDay: startOfDay + 86400 - 1 };
}
// starts from sunday
function getThisWeeksTimeStamp() {
const currentTimeStamp = Math.round(Date.now() / 1000);
const currentDay = new Date(currentTimeStamp * 1000);
const startOfWeek = currentTimeStamp - (currentDay.getDay() * 86400) - (currentTimeStamp % 86400);
return { startOfWeek, endOfWeek: startOfWeek + 7 * 86400 - 1 };
}
function getThisMonthsTimeStamp() {
const currentTimeStamp = Math.round(Date.now() / 1000);
const currentDay = new Date(currentTimeStamp * 1000);
const startOfMonth = currentTimeStamp - ((currentDay.getDate() - 1) * 86400) - (currentTimeStamp % 86400);
const currentMonth = currentDay.getMonth() + 1;
let daysInMonth = 0;
if (currentMonth === 2) daysInMonth = 28;
else if ([1, 3, 5, 7, 8, 10, 12].includes(currentMonth)) daysInMonth = 31;
else daysInMonth = 30;
return { startOfMonth, endOfMonth: startOfMonth + daysInMonth * 86400 - 1 };
}
console.log(getTodaysTimeStamp());
console.log(getThisWeeksTimeStamp());
console.log(getThisMonthsTimeStamp());