I'll make the assumption that the spec is:
Get today at 23:00:00 in current time zone
Code would look like this:
mktime(23, 0, 0);
... or:
strtotime('today 23:00:00')
... or just:
strtotime('23:00:00')
Test code:
$time_zones = array(
'America/Chicago',
'GMT',
'Europe/Berlin',
);
foreach($time_zones as $time_zone){
date_default_timezone_set($time_zone);
$t1 = mktime(23, 0, 0);
$t2 = strtotime('today 23:00:00');
$t3 = strtotime('23:00:00');
echo date('r', $t1) . ' / ' . date('r', $t2) . ' / ' . date('r', $t3) . PHP_EOL;
}
Fri, 02 Dec 2016 23:00:00 -0600 / Fri, 02 Dec 2016 23:00:00 -0600 / Fri, 02 Dec 2016 23:00:00 -0600
Fri, 02 Dec 2016 23:00:00 +0000 / Fri, 02 Dec 2016 23:00:00 +0000 / Fri, 02 Dec 2016 23:00:00 +0000
Fri, 02 Dec 2016 23:00:00 +0100 / Fri, 02 Dec 2016 23:00:00 +0100 / Fri, 02 Dec 2016 23:00:00 +0100
Please find further details at mktime() and strtotime() manual pages.