Exemplo n.º 1
0
        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
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
    // 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);
        }
    }
Exemplo n.º 4
0
    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;
    }
Exemplo n.º 5
0
    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();
    }