public void TestGetLocalTime() { #if DEBUG PhpArray result1, result2; PhpTimeZone.CurrentTimeZone = PhpTimeZone.GetTimeZone("UTC"); DateTime dt = new DateTime(2005, 11, 4, 5, 4, 3, 132); result1 = PhpDateTime.GetLocalTime(dt, false); result2 = PhpDateTime.GetLocalTime(dt, true); Assert.AreEqual((int)result1[0], 3); Assert.AreEqual((int)result1[1], 4); Assert.AreEqual((int)result1[2], 5); Assert.AreEqual((int)result1[3], 4); Assert.AreEqual((int)result1[4], 10); Assert.AreEqual((int)result1[5], 105); Assert.AreEqual((int)result1[6], 5); Assert.AreEqual((int)result1[7], 307); Assert.AreEqual((int)result1[8], 0); Assert.AreEqual((int)result1[0], (int)result2["tm_sec"]); Assert.AreEqual((int)result1[1], (int)result2["tm_min"]); Assert.AreEqual((int)result1[2], (int)result2["tm_hour"]); Assert.AreEqual((int)result1[3], (int)result2["tm_mday"]); Assert.AreEqual((int)result1[4], (int)result2["tm_mon"]); Assert.AreEqual((int)result1[5], (int)result2["tm_year"]); Assert.AreEqual((int)result1[6], (int)result2["tm_wday"]); Assert.AreEqual((int)result1[7], (int)result2["tm_yday"]); Assert.AreEqual((int)result1[8], (int)result2["tm_isdst"]); #endif }
public void TestGetTimeZone() { TimeZoneInfo zone; zone = PhpTimeZone.GetTimeZone("Europe/Prague"); Assert.IsTrue(zone != null && zone.Id == "Europe/Prague"); zone = PhpTimeZone.GetTimeZone("europe/prague"); Assert.IsTrue(zone != null && zone.Id == "Europe/Prague"); zone = PhpTimeZone.GetTimeZone("foo"); Assert.IsNull(zone); }
// public __construct ( string $timezone ) public void __construct(string timezone_name) { if (timezone_name != null) { this.timezone = PhpTimeZone.GetTimeZone(timezone_name); if (this.timezone == null) { //PhpException.Throw(PhpError.Notice, LibResources.GetString("unknown_timezone", zoneName)); throw new ArgumentException(); } } else { this.timezone = PhpTimeZone.GetCurrentTimeZone(_ctx); } }
public DateTime(Context ctx, string time, DateTimeZone timezone) { Debug.Assert(ctx != null); _ctx = ctx; if (timezone == null) { TimeZone = PhpTimeZone.GetCurrentTimeZone(ctx); } else { //var datetimezone = timezone as DateTimeZone; //if (datetimezone == null) //{ // PhpException.InvalidArgumentType("timezone", "DateTimeZone"); // TimeZone = PhpTimeZone.CurrentTimeZone; //} //else { TimeZone = timezone.timezone; } } if (TimeZone == null) { //PhpException.InvalidArgument("timezone"); //return null; throw new ArgumentException(); } this.Time = StrToTime(time, System_DateTime.UtcNow); //this.date.Value = this.Time.ToString("yyyy-mm-dd HH:mm:ss"); //this.timezone_type.Value = 3; //this.timezone.Value = TimeZone.Id; }
public static object createFromFormat(Context ctx, string format, string time, DateTimeZone timezone = null) { // arguments var tz = (timezone != null) ? timezone.timezone : PhpTimeZone.GetCurrentTimeZone(ctx); if (format == null) { //PhpException.InvalidArgument("format"); //return false; throw new ArgumentNullException(); } if (time == null) { //PhpException.InvalidArgument("time"); //return false; throw new ArgumentNullException(); } // create DateTime from format+time int i = 0; // position in <timestr> foreach (var c in format) { switch (c) { //case 'd': //case 'j': // var day = PHP.Library.StrToTime.DateInfo.ParseUnsignedInt(timestr, ref i, 2); // // ... use day // break; //case 'F': //case 'M': // // parse ... // break; default: if (i < time.Length && time[i] == c) { // match i++; } else { // not match //PhpException.InvalidArgument("time"); // time not matching format //return false; throw new ArgumentException(); } break; } } if (i < time.Length) { //PhpException.InvalidArgument("time"); // time not matching format //return false; throw new ArgumentException(); } //// //return new __PHP__DateTime(context, true) //{ // //Time = new DateTime(year, month, day, hour, minute, second, millisecond), // TimeZone = tz, //}; throw new NotImplementedException(); }