Php 如何返回特定unix时间戳的一个月开始时的unix时间戳

Php 如何返回特定unix时间戳的一个月开始时的unix时间戳,php,unix,unix-timestamp,Php,Unix,Unix Timestamp,我需要一个通用函数,它接受一个日期时间的unix时间戳表示形式,并返回一个表示形式,例如,每月第一天的午夜 i、 e.我通过表示现在(2012年11月8日星期四12:01:33 GMT)的1352376093,并返回表示现在(2012年11月1日星期四00:00 GMT)的1351728000。此代码片段应该可以帮助您解决问题。只需从现有日期开始计算月份和年份,并将其转换回时间戳即可 <?php $time = 1352376093; $date = date('Y-m

我需要一个通用函数,它接受一个日期时间的unix时间戳表示形式,并返回一个表示形式,例如,每月第一天的午夜


i、 e.我通过表示现在(2012年11月8日星期四12:01:33 GMT)的
1352376093
,并返回表示现在(2012年11月1日星期四00:00 GMT)的
1351728000

此代码片段应该可以帮助您解决问题。只需从现有日期开始计算月份和年份,并将其转换回时间戳即可

<?php
     $time = 1352376093;
     $date = date('Y-m-01 00:00:00', $time);
     $result = strtotime($date);

因此,使用此函数结束:

$earliest_issue = db_result( $result, 0 );
$day_of_month_of_earliest_issue = date("d", $earliest_issue);
$hour_of_month_of_earliest_issue = date("h", $earliest_issue);
$minute_of_month_of_earliest_issue = date("i", $earliest_issue);
$seconds_in_month = date("s", $earliest_issue);
$seconds_in_day_of_month = (($day_of_month_of_earliest_issue*24*60*60)-86400);
$seconds_in_hour_of_month = (($hour_of_month_of_earliest_issue*60*60)-3600);
$seconds_in_minute_of_month = (($minute_of_month_of_earliest_issue*60));
$start_time_of_query = ($earliest_issue - $seconds_in_day_of_month - $seconds_in_hour_of_month - $seconds_in_minute_of_month - $seconds_in_month);

return $start_time_of_query;
其中,
$earlish\u issue
是开始日期

如果有人读到这篇文章,有一个更优雅的功能,如我所希望的,那么请贡献,谢谢