internal static PhpArray GetLocalTime(TimeZoneInfo currentTz, System_DateTime utc, bool returnAssociative)
{
PhpArray result;
var local = TimeZoneInfo.ConvertTime(utc, currentTz);
if (returnAssociative)
{
result = new PhpArray(0, 9);
result["tm_sec"] = PhpValue.Create(local.Second);
result["tm_min"] = PhpValue.Create(local.Minute);
result["tm_hour"] = PhpValue.Create(local.Hour);
result["tm_mday"] = PhpValue.Create(local.Day);
result["tm_mon"] = PhpValue.Create(local.Month - 1);
result["tm_year"] = PhpValue.Create(local.Year - 1900);
result["tm_wday"] = PhpValue.Create((int)local.DayOfWeek);
result["tm_yday"] = PhpValue.Create(local.DayOfYear - 1);
result["tm_isdst"] = PhpValue.Create(currentTz.IsDaylightSavingTime(local) ? 1 : 0);
}
else
{
result = new PhpArray(9, 0);
result.AddValue(PhpValue.Create(local.Second));
result.AddValue(PhpValue.Create(local.Minute));
result.AddValue(PhpValue.Create(local.Hour));
result.AddValue(PhpValue.Create(local.Day));
result.AddValue(PhpValue.Create(local.Month - 1));
result.AddValue(PhpValue.Create(local.Year - 1900));
result.AddValue(PhpValue.Create((int)local.DayOfWeek));
result.AddValue(PhpValue.Create(local.DayOfYear - 1));
result.AddValue(PhpValue.Create(currentTz.IsDaylightSavingTime(local) ? 1 : 0));
}
return result;
}