Copied to clipboard

Flag this post as spam?

This post will be reported to the moderators as potential spam to be looked at


  • Warren Buckley 2106 posts 4836 karma points MVP 7x admin c-trib
    Aug 13, 2009 @ 13:39
    Warren Buckley
    0

    Trying to format UTS date format with umbraco.library:FormatDateTime()

    Hello I was wondering if someone could help me trying to format a UTS date with the XSLT extension umbraco.library:FormatDateTime.

    UTS (Unix Time Stamp) Date = 1250163047
    Actual Date = 13 Aug 2009, 11:30

    Some info on Unix Time Stamp
    http://www.onlineconversion.com/unix_time.htm
    http://en.wikipedia.org/wiki/Unix_time

    I have no idea on how I could handle this problem any suggestions please.

    Thanks,
    Warren :)

     

  • Tim 225 posts 690 karma points
    Aug 13, 2009 @ 13:45
    Tim
    1

    A UNIX timestamp is number of seconds since 1/1/1970 so if you  used the dateAdd method in umbraco:library to add 1250163047 seconds to 1/1/1970 you would get the correct date object returned and you could format as usual.

    T

  • Arnold Visser 418 posts 778 karma points hq c-trib
    Aug 13, 2009 @ 13:51
    Arnold Visser
    1

    I think you'll need some .net code to make the conversion BEFORE using it in xslt.

    http://codeclimber.net.nz/archive/2007/07/10/convert-a-unix-timestamp-to-a-.net-datetime.aspx

    static DateTime ConvertFromUnixTimestamp(double timestamp)
    {
        DateTime origin = new DateTime(1970, 1, 1, 0, 0, 0, 0);
        return origin.AddSeconds(timestamp);
    }
    
    
    static double ConvertToUnixTimestamp(DateTime date)
    {
        DateTime origin = new DateTime(1970, 1, 1, 0, 0, 0, 0);
        TimeSpan diff = date - origin;
        return Math.Floor(diff.TotalSeconds);
    }

  • Tommy Poulsen 514 posts 708 karma points
    Aug 13, 2009 @ 13:52
    Tommy Poulsen
    1

    and here is another one http://www.codeproject.com/KB/cs/timestamp.aspx

    >Tommy

     

  • Warren Buckley 2106 posts 4836 karma points MVP 7x admin c-trib
    Aug 13, 2009 @ 13:57
    Warren Buckley
    0

    OK excellent thanks guys, I will write this as an XSLT extension.

    Warren :)

  • Tim 225 posts 690 karma points
    Aug 13, 2009 @ 13:57
    Tim
    100

    I think this will work in XSLT, not tested:

    <xsl:value-of="umbraco.library:FormatDateTime(umbraco.library:DateAdd('1/1/1970','s', 1250163047), 'MMMM d, yyyy')" />
    
    

    T

  • Warren Buckley 2106 posts 4836 karma points MVP 7x admin c-trib
    Aug 13, 2009 @ 14:03
    Warren Buckley
    0

    Tim, I tried it but it didn't work.
    Does the 1970 date need to be in a different format?

    <xsl:value-of select="umbraco.library:FormatDateTime(umbraco.library:DateAdd('1/1/1970','s', date[@uts]),'dd.mm.yy @ H:mm')"/>
  • Tim 225 posts 690 karma points
    Aug 13, 2009 @ 14:11
    Tim
    0

    Might need to be like this:

    1970-01-01T00:00:00

    T

  • Tim 225 posts 690 karma points
    Aug 13, 2009 @ 14:13
    Tim
    0

    Example:

    <xsl:value-of="umbraco.library:FormatDateTime(umbraco.library:DateAdd('1970-01-01T00:00:000','s', 1250163047), 'MMMM d, yyyy')" />

    Again not tested - just coding off the top of my head!

    T

  • Warren Buckley 2106 posts 4836 karma points MVP 7x admin c-trib
    Aug 13, 2009 @ 15:02
    Warren Buckley
    0

    OK Tim did solve it on earlier with the original date format of 01/01/1970 and it was me being dumb with my XPath Selector.
    I should have done date/@uts and NOT date[@uts]

    <xsl:value-of select="umbraco.library:FormatDateTime(umbraco.library:DateAdd('01/01/1970','s', date/@uts),'dd dddd MMM yy @ H:mm')"/>
  • This forum is in read-only mode while we transition to the new forum.

    You can continue this topic on the new forum by tapping the "Continue discussion" link below.

Please Sign in or register to post replies