您可以使用DateTime::createFromFormat
因爲你沒有
天做
$date = DateTime::createFromFormat("F Y", "January 2013");
printf("%s hr(s)",$date->format("t") * 24);
那麼,如果你正在尋找在工作日的不同的方法
$date = "January 2013"; // You only know Month and year
$workHours = 10; // 10hurs a day
$start = DateTime::createFromFormat("F Y d", "$date 1"); // added first
printf("%s hr(s)", $start->format("t") * 24);
// if you are only looking at working days
$end = clone $start;
$end->modify(sprintf("+%d day", $start->format("t") - 1));
$interval = new DateInterval("P1D"); // Interval
var_dump($start, $end);
$hr = 0;
foreach(new DatePeriod($start, $interval, $end) as $day) {
// Exclude sarturday & Sunday
if ($day->format('N') < 6) {
$hr += $workHours; // add working hours
}
}
printf("%s hr(s)", $hr);
獲取下個月第一天的時間戳和當前月份第一天的時間戳並減去。 – PeeHaa 2013-04-28 16:56:14
您是否需要允許在一個月內發生夏時制變化? – 2013-04-28 17:10:27
@MarkBaker號不是。 – lloyd 2013-04-28 17:14:23