我将如何在今天午夜在php中获取时间戳。假设今天是星期一下午5点,我希望星期一(今天)在午夜(12点)的时间戳已经发生。
谢谢
我将如何在今天午夜在php中获取时间戳。假设今天是星期一下午5点,我希望星期一(今天)在午夜(12点)的时间戳已经发生。
谢谢
Answers:
$timestamp = strtotime('today midnight');
您可能想看看PHP提供了什么:http : //php.net/datetime
$timestamp = strtotime('today');
是午夜。但是pssst上面的一个问题看起来更酷;)
strtotime('today+00:00')
。
我认为您应该使用新的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');
获取所需的对象输出格式。
new DateTime('today midnight')
,这使意图更加清晰(但这当然是一个品味问题)。
$today = new DateTime('today')
new Carbon('today midnight')
,然后可以使用所有的Carbon材质,例如->subDays(6)
。参见carbon.nesbot.com
您正在计算最近的天体事件的时间,在该事件中,太阳已经从您的脚下直接经过,已经过调整以适应午后的当地惯例,并且还可能进行调整,以使人们下班回家后剩下足够的日光。其他政治考虑。
令人生畏的对吧?实际上,这是一个常见问题,但完整的答案取决于位置:
$zone = new \DateTimeZone('America/New_York'); // Or your own definition of “here”
$todayStart = new \DateTime('today midnight', $zone);
$timestamp = $todayStart->getTimestamp();
https://secure.php.net/manual/en/timezones.php列出了“此处”的可能定义。
strtotime('America/New_York today midnight');
吗?- 3v4l.org/I85qD
$today_at_midnight = strtotime(date("Ymd"));
应该给你你想要的。
说明
我所做的是使用PHP的date函数获取今天的日期,而没有任何时间参考,然后将其传递给'string to time'函数,该函数将日期和时间转换为纪元时间戳。如果没有时间,则以当天的第一秒为准。
参考:日期函数:http : //php.net/manual/en/function.date.php
strtotime()
,头脑如此专注于日期功能。道歉。
以更客观的方式:
$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
$midnight = strtotime('midnight');
有效
您也可以试试
strtotime('12am')
或strtotime('[input any time you wish to here. e.g noon, 6pm, 3pm, 8pm, etc]')
。我跳过了今天午夜之前添加的内容,因为默认值是今天。
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());