Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 17

Thema: Realtive und absolute Zeitangabe

  1. #1
    Kaiser(in)
    Registriert seit
    16.03.2005
    Beiträge
    2.315
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Frage Realtive und absolute Zeitangabe

    Hallo.
    Ich habe ein JavaScript-Skript, das mir meine Twitter-Einträge auf meiner Homepage darstellt - bisher mit relativen Zeitangaben.
    Code:
    function relative_time(time_value) {
          var parsed_date = parse_date(time_value);
          var relative_to = (arguments.length > 1) ? arguments[1] : new Date();
          var delta = parseInt((relative_to.getTime() - parsed_date) / 1000);
          var pluralize = function (singular, n) {
            return '' + n + ' ' + singular + (n == 1 ? '' : 's');
          };
          if(delta < 60) {
          return 'less than a minute ago';
          } else if(delta < (60*60)) {
          return 'about ' + pluralize("minute", parseInt(delta / 60)) + ' ago';
          } else if(delta < (24*60*60)) {
          return 'about ' + pluralize("hour", parseInt(delta / 3600)) + ' ago';
          } else {
          return 'about ' + pluralize("day", parseInt(delta / 86400)) + ' ago';
          }
        }
    Jetzt möchte ich gerne, dass mir nicht die relative Zeit angezeigt wird, sondern einfach das feste Datum mit Uhrzeit. Dafür habe ich einfach den obigen Code ersetzt durch.
    Code:
    function fix_time() {
          var currentTime = new Date()
          var month = currentTime.getMonth() + 1
          var day = currentTime.getDate()
          var year = currentTime.getFullYear()
          document.write(month + "/" + day + "/" + year)
        };
    Das hat leider nicht funktioniert. Vielleicht kann mir jemand helfen - bin da nochnicht so drinne in der Thematik. Das komplette Skript ist noch mal am Ende aufgeführt (konnte es leider nicht als Anhang posten). Vielen Dank!
    Code:
    (function($) {
     
      $.fn.tweet = function(o){
        var s = {
          username: ["seaofclouds"],              // [string]   required, unless you want to display our tweets. :) it can be an array, just do ["username1","username2","etc"]
          list: null,                              //[string]   optional name of list belonging to username
          avatar_size: null,                      // [integer]  height and width of avatar if displayed (48px max)
          count: 3,                               // [integer]  how many tweets to display?
          intro_text: null,                       // [string]   do you want text BEFORE your your tweets?
          outro_text: null,                       // [string]   do you want text AFTER your tweets?
          join_text:  null,                       // [string]   optional text in between date and tweet, try setting to "auto"
          auto_join_text_default: "i said,",      // [string]   auto text for non verb: "i said" bullocks
          auto_join_text_ed: "i",                 // [string]   auto text for past tense: "i" surfed
          auto_join_text_ing: "i am",             // [string]   auto tense for present tense: "i was" surfing
          auto_join_text_reply: "i replied to",   // [string]   auto tense for replies: "i replied to" @someone "with"
          auto_join_text_url: "i was looking at", // [string]   auto tense for urls: "i was looking at" http:...
          loading_text: null,                     // [string]   optional loading text, displayed while tweets load
          query: null                             // [string]   optional search query
        };
        
        if(o) $.extend(s, o);
        
        $.fn.extend({
          linkUrl: function() {
            var returning = [];
            var regexp = /((ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?)/gi;
            this.each(function() {
              returning.push(this.replace(regexp,"<a href=\"$1\">$1</a>"));
            });
            return $(returning);
          },
          linkUser: function() {
            var returning = [];
            var regexp = /[\@]+([A-Za-z0-9-_]+)/gi;
            this.each(function() {
              returning.push(this.replace(regexp,"<a href=\"http://twitter.com/$1\">@$1</a>"));
            });
            return $(returning);
          },
          linkHash: function() {
            var returning = [];
            var regexp = /(?:^| )[\#]+([A-Za-z0-9-_]+)/gi;
            this.each(function() {
              returning.push(this.replace(regexp, ' <a href="http://search.twitter.com/search?q=&tag=$1&lang=all&from='+s.username.join("%2BOR%2B")+'">#$1</a>'));
            });
            return $(returning);
          },
          capAwesome: function() {
            var returning = [];
            this.each(function() {
              returning.push(this.replace(/\b(awesome)\b/gi, '<span class="awesome">$1</span>'));
            });
            return $(returning);
          },
          capEpic: function() {
            var returning = [];
            this.each(function() {
              returning.push(this.replace(/\b(epic)\b/gi, '<span class="epic">$1</span>'));
            });
            return $(returning);
          },
          makeHeart: function() {
            var returning = [];
            this.each(function() {
              returning.push(this.replace(/(&lt;)+[3]/gi, "<tt class='heart'>&#x2665;</tt>"));
            });
            return $(returning);
          }
        });
    
        function parse_date(date_str) {
          // The non-search twitter APIs return inconsistently-formatted dates, which Date.parse
          // cannot handle in IE. We therefore perform the following transformation:
          // "Wed Apr 29 08:53:31 +0000 2009" => "Wed, Apr 29 2009 08:53:31 +0000"
          return Date.parse(date_str.replace(/^([a-z]{3})( [a-z]{3} \d\d?)(.*)( \d{4})$/i, '$1,$2$4$3'));
        }
    
        function relative_time(time_value) {
          var parsed_date = parse_date(time_value);
          var relative_to = (arguments.length > 1) ? arguments[1] : new Date();
          var delta = parseInt((relative_to.getTime() - parsed_date) / 1000);
          var pluralize = function (singular, n) {
            return '' + n + ' ' + singular + (n == 1 ? '' : 's');
          };
          if(delta < 60) {
          return 'less than a minute ago';
          } else if(delta < (60*60)) {
          return 'about ' + pluralize("minute", parseInt(delta / 60)) + ' ago';
          } else if(delta < (24*60*60)) {
          return 'about ' + pluralize("hour", parseInt(delta / 3600)) + ' ago';
          } else {
          return 'about ' + pluralize("day", parseInt(delta / 86400)) + ' ago';
          }
        }
    
        function build_url() {
          var proto = ('https:' == document.location.protocol ? 'https:' : 'http:');
          if (s.list) {
            return proto+"//api.twitter.com/1/"+s.username[0]+"/lists/"+s.list+"/statuses.json?per_page="+s.count+"&callback=?";
          } else if (s.query == null && s.username.length == 1) {
            return proto+'//api.twitter.com/1/statuses/user_timeline.json?screen_name='+s.username[0]+'&count='+s.count+'&callback=?';
          } else {
            var query = (s.query || 'from:'+s.username.join(' OR from:'));
            return proto+'//search.twitter.com/search.json?&q='+escape(query)+'&rpp='+s.count+'&callback=?';
          }
        }
    
        return this.each(function(i, widget){
          var list = $('<ul class="tweet_list">').appendTo(widget);
          var intro = '<p class="tweet_intro">'+s.intro_text+'</p>';
          var outro = '<p class="tweet_outro">'+s.outro_text+'</p>';
          var loading = $('<p class="loading">'+s.loading_text+'</p>');
    
          if(typeof(s.username) == "string"){
            s.username = [s.username];
          }
    
          if (s.loading_text) $(widget).append(loading);
          $.getJSON(build_url(), function(data){
            if (s.loading_text) loading.remove();
            if (s.intro_text) list.before(intro);
            var tweets = (data.results || data);
            $.each(tweets, function(i,item){
              // auto join text based on verb tense and content
              if (s.join_text == "auto") {
                if (item.text.match(/^(@([A-Za-z0-9-_]+)) .*/i)) {
                  var join_text = s.auto_join_text_reply;
                } else if (item.text.match(/(^\w+:\/\/[A-Za-z0-9-_]+\.[A-Za-z0-9-_:%&\?\/.=]+) .*/i)) {
                  var join_text = s.auto_join_text_url;
                } else if (item.text.match(/^((\w+ed)|just) .*/im)) {
                  var join_text = s.auto_join_text_ed;
                } else if (item.text.match(/^(\w*ing) .*/i)) {
                  var join_text = s.auto_join_text_ing;
                } else {
                  var join_text = s.auto_join_text_default;
                }
              } else {
                var join_text = s.join_text;
              };
    
              var from_user = item.from_user || item.user.screen_name;
              var profile_image_url = item.profile_image_url || item.user.profile_image_url;
              var join_template = '<span class="tweet_join"> '+join_text+' </span>';
              var join = ((s.join_text) ? join_template : ' ');
              var avatar_template = '<a class="tweet_avatar" href="http://twitter.com/'+from_user+'"><img src="'+profile_image_url+'" height="'+s.avatar_size+'" width="'+s.avatar_size+'" alt="'+from_user+'\'s avatar" title="'+from_user+'\'s avatar" border="0"/></a>';
              var avatar = (s.avatar_size ? avatar_template : '');
              var date = '<span class="tweet_time"><a href="http://twitter.com/'+from_user+'/statuses/'+item.id+'" title="view tweet on twitter">'+relative_time(item.created_at)+'</a></span>';
              var text = '<span class="tweet_text">' +$([item.text]).linkUrl().linkUser().linkHash().makeHeart().capAwesome().capEpic()[0]+ '</span>';
    
              // until we create a template option, arrange the items below to alter a tweet's display.
              list.append('<li>' + avatar + date + join + text + '</li>');
    
              list.children('li:first').addClass('tweet_first');
              list.children('li:odd').addClass('tweet_even');
              list.children('li:even').addClass('tweet_odd');
            });
            if (s.outro_text) list.after(outro);
            $(widget).trigger("loaded").trigger((tweets.length == 0 ? "empty" : "full"));
          });
    
        });
      };
    })(jQuery);
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!

  2. #2
    Pion
    Gast

    Standard AW: Realtive und absolute Zeitangabe

    Was hat den nicht funktioniert, die Funktion die neue ist doch in ordnung und liefert die die aktuelle Zeit

  3. #3
    Kaiser(in)
    Themenstarter

    Registriert seit
    16.03.2005
    Beiträge
    2.315
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Realtive und absolute Zeitangabe

    Zitat Zitat von Pion Beitrag anzeigen
    Was hat den nicht funktioniert, die Funktion die neue ist doch in ordnung und liefert die die aktuelle Zeit
    Mir wurde dann auf der gesamten Seite nichts angezeigt, außer zwei mal das aktuelle Datum.
    Den Code für relative_time habe ich natürlich gelöscht und in der Zeile relative_time durch fix_time ersetzt.
    Code:
              var date = '<span class="tweet_time"><a href="http://twitter.com/'+from_user+'/statuses/'+item.id+'" title="view tweet on twitter">'+relative_time(item.created_at)+'</a></span>';

  4. #4
    Pion
    Gast

    Standard AW: Realtive und absolute Zeitangabe

    Achso ja du solltest in der neuen Funktion schon ein
    return

    verwenden wie in der alten


    mfg

  5. #5
    Kaiser(in)
    Themenstarter

    Registriert seit
    16.03.2005
    Beiträge
    2.315
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Realtive und absolute Zeitangabe

    Zitat Zitat von Pion Beitrag anzeigen
    Achso ja du solltest in der neuen Funktion schon ein
    return

    verwenden wie in der alten


    mfg
    Ok. Einfach "return;" oder wie? Bin noch ganz am Anfang von JS...

  6. #6
    Thonixx
    Gast

    Standard AW: Realtive und absolute Zeitangabe

    Wenn du Funktionen verwendest und damit eine Ausgabe machen möchtest, dann brauchst du return.
    Mit Return kannst du, wie der Name schon sagt, etwas "Zurückgeben" und das wär dann das, was du bräuchtest und dann kannst du nur noch document.write(function()); oder sowas.
    Du bekommst an dem Ort, wo du die Funktion einsetzt, den Inhalt zurück und die Funktion "beinhaltet" einen gewissen von dir programmierten Wert.

  7. #7
    Pion
    Gast

    Standard AW: Realtive und absolute Zeitangabe

    Code:
    function fix_time() {
          var currentTime = new Date()
          var month = currentTime.getMonth() + 1
          var day = currentTime.getDate()
          var year = currentTime.getFullYear()
         return month + "/" + day + "/" + year;
        }
    So nun im var date einfach fix_time aufrufen

  8. #8
    Kaiser(in)
    Themenstarter

    Registriert seit
    16.03.2005
    Beiträge
    2.315
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Realtive und absolute Zeitangabe

    Zitat Zitat von Pion Beitrag anzeigen
    Code:
    function fix_time() {
          var currentTime = new Date()
          var month = currentTime.getMonth() + 1
          var day = currentTime.getDate()
          var year = currentTime.getFullYear()
         return month + "/" + day + "/" + year;
        }
    So nun im var date einfach fix_time aufrufen
    Super, vielen Dank! Das Einbinden der Uhrzeit sollteich jetzt auch noch hinkriegen.

  9. #9
    Kaiser(in)
    Themenstarter

    Registriert seit
    16.03.2005
    Beiträge
    2.315
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Realtive und absolute Zeitangabe

    Zitat Zitat von davidos_no.1 Beitrag anzeigen
    Super, vielen Dank! Das Einbinden der Uhrzeit sollteich jetzt auch noch hinkriegen.
    Habe mich jetzt abgemüht es mit der Uhrzeit leider doch nicht alleine hinbekommen.
    Code:
    function fix_time() {
          var currentTime = new Date()
          var month = currentTime.getMonth() + 1
          var day = currentTime.getDate()
          var year = currentTime.getFullYear()
          
          var hours = currentTime.getHours()
          var minutes = currentTime.getMinutes()
          if (minutes < 10){
          minutes = "0" + minutes
          
          return day + "." + month + "." + year + " um " + hours + ":" + minutes;
        }
    Was ist daran verkehrt?

  10. #10
    Forum Guru Avatar von synaptic
    Registriert seit
    20.06.2007
    Ort
    Butzbach-Wiesental
    Beiträge
    10.901
    Danke
    45
    Bekam 48 mal "Danke" in 46 Postings
    Blog-Einträge
    1

    Standard AW: Realtive und absolute Zeitangabe

    du schliesst nich den funktions-body und du musst das return nach dem if machen, sonst gibt dir des teil nur nen return-value wenn die minutes < 10 sind
    KEIN support via pn, email, messenger oder falsch geposteten threads
    Futter für deine Schnuffelzwerge gibts bei den Schnuffelzwergen TOP Qualität, also klicken und kaufen

Ähnliche Themen

  1. Problem mit position:absolute;
    Von minder im Forum HTML & CSS Forum
    Antworten: 4
    Letzter Beitrag: 19.08.2009, 18:52
  2. Zeitangabe richtig Formatieren, ...
    Von OJMD im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 4
    Letzter Beitrag: 19.03.2007, 23:22
  3. <div> absolute Position
    Von malawi im Forum HTML & CSS Forum
    Antworten: 12
    Letzter Beitrag: 14.02.2007, 14:45
  4. absolute mitte
    Von lumich im Forum HTML & CSS Forum
    Antworten: 4
    Letzter Beitrag: 18.09.2006, 00:19
  5. Zeitangabe hier im Forum
    Von mauritius im Forum Forum-Hilfe.de intern
    Antworten: 7
    Letzter Beitrag: 15.05.2003, 18:27

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •