internal static PhpArray GetTimeOfDay(System_DateTime utc, TimeZoneInfo/*!*/ zone)
{
var result = new PhpArray(0, 4);
var local = TimeZoneInfo.ConvertTime(utc, zone);
//int current_dst = 0;
if (zone.IsDaylightSavingTime(local))
{
// TODO: current_dst
//var rules = zone.GetAdjustmentRules();
//for (int i = 0; i < rules.Length; i++)
//{
// if (rules[i].DateStart <= local && rules[i].DateEnd >= local)
// {
// current_dst = (int)rules[i].DaylightDelta.TotalHours;
// break;
// }
//}
}
const int ticks_per_microsecond = (int)TimeSpan.TicksPerMillisecond / 1000;
result["sec"] = PhpValue.Create(DateTimeUtils.UtcToUnixTimeStamp(utc));
result["usec"] = PhpValue.Create((int)(local.Ticks % TimeSpan.TicksPerSecond) / ticks_per_microsecond);
result["minuteswest"] = PhpValue.Create((int)(utc - local).TotalMinutes);
//result["dsttime"] = PhpValue.Create(current_dst);
return result;
}