When I print a date at my EST(New York) 10:48 PM I get wrong time. Actually it prints my localtime:
$usertime = userdate(gmmktime(), get_string('strftimedaydatetime'), "Pacific/Kiritimati" );
echo $usertime yields: "09/10 22:48"
When I use the below code, the time is correctly displayed:
$userDateTime = new DateTime(null, new DateTimeZone("Pacific/Kiritimati"));
$usertime = $userDateTime->format('m/d H:i');
echo $usertime yields: "09/10 16:48"
Tracing through the code shows the issue here at function "userdate"