You are not logged in.

Dear visitor, welcome to viecode.com. If this is your first visit here, please read the Help. It explains in detail how this page works. To use all features of this page, you should consider registering. Please use the registration form, to register here or read more information about the registration process. If you are already registered, please login here.

IT_Center_Neuss

Intermediate

(10)

  • "IT_Center_Neuss" started this thread

Posts: 162

Reputation modifier: 3

  • Send private message

1

Friday, October 8th 2010, 7:26pm

Twitter Anzeige via jQuery

Hallo alle zusammen

ich habe hier folgenden JS Script der meine Tweets anzeigen soll:

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
(function($) {
 
  $.fn.tweet = function(o){
	var s = {
  	username: ["IT_Center_Neuss"],          	// [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
  	refresh_interval: null              	// [integer]  optional number of seconds after which to reload tweets
	};
	
	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 r = '';
  	if (delta < 60) {
	r = delta + ' seconds ago';
  	} else if(delta < 120) {
	r = 'a minute ago';
  	} else if(delta < (45*60)) {
	r = (parseInt(delta / 60, 10)).toString() + ' minutes ago';
  	} else if(delta < (2*60*60)) {
	r = 'an hour ago';
  	} else if(delta < (24*60*60)) {
	r = '' + (parseInt(delta / 3600, 10)).toString() + ' hours ago';
  	} else if(delta < (48*60*60)) {
	r = 'a day ago';
  	} else {
	r = (parseInt(delta / 86400, 10)).toString() + ' days ago';
  	}
  	return 'about ' + r;
	}

	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+'&include_rts=1&callback=?';
  	} else {
    	var query = (s.query || 'from:'+s.username.join(' OR from:'));
    	return proto+'//search.twitter.com/search.json?&q='+encodeURIComponent(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);
  	$(widget).bind("load", function(){
    	$.getJSON(build_url(), function(data){
      	if (s.loading_text) loading.remove();
      	if (s.intro_text) list.before(intro);
      	list.empty();
      	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"));
      	if (s.refresh_interval) {
        	window.setTimeout(function() { $(widget).trigger("load"); }, 1000 * s.refresh_interval);
      	};
    	});
  	}).trigger("load");
	});
  };
})(jQuery);



Doch wird im Moment nur angezeigt "4 hours ago" oder "5 min ago"
Möchte statt dessen aber ein komplettes Datum mit Zeit angezeigt bekommen in diesem Format: Freitag, 8. Oktober 2010 14:52


Kann mir dabei jemand helfen?
Kenne mich mit JS nicht aus

comfre

Beginner

(21)

Posts: 21

Reputation modifier: 1

  • Send private message

2

Thursday, February 3rd 2011, 4:21pm

Lässt sich das nicht mit PHP verwalten?

PHP Source code

1
2
3
<?php
echo date("j.n.y.") ("H:I:S");
?>

Das wäre dann datum und uhrzeit anzeigen..
Nurnoch einbinden^^

Zurret

Beginner

(10)

  • "Zurret" is male

Posts: 5

Location: Anklam

Reputation modifier: 7

  • Send private message

3

Friday, February 4th 2011, 5:22am

Lässt sich das nicht mit PHP verwalten?

PHP Source code

1
2
echo date("j.n.y.") ("H:I:S");
?>

Das wäre dann datum und uhrzeit anzeigen..
Nurnoch einbinden^^
das ist absolut falsch...


So zum JS... ^^

Beispiel:

Quoted

var origStamp = Date.parse(pastTime);
var date = new Date();
date.setTime(origStamp);
var curDate = new Date();
var currentStamp = curDate.getTime();
var Monat = new Array("Januar", "Februar", "M&auml;rz", "April", "Mai", "Juni",
"Juli", "August", "September", "Oktober", "November", "Dezember");
var difference = parseInt((currentStamp - origStamp)/1000);

return date.getHours() + ":" + date.getMinutes() + " - " + date.getDate() + "." + Monat[date.getMonth()] + "." + date.getFullYear();


so nutz ich es ^^ "pastTime" ist die zeit die ich von den Twitter zeug bekomme...

Helfen kann auch http://de.selfhtml.org/javascript/objekte/date.htm

PS: kann sein das ich nen fehler drin hab ^^ hab nicht viel mit JS zu tun...

This post has been edited 1 times, last edit by "Zurret" (Feb 4th 2011, 5:33am)


Rate this thread
Support
Forum
Spotlight

Kunden, die unsere Produkte über den WoltLab Plugin-Store erworben haben, können sich nun über unsere Aktivierungsseite für die Supportbereiche freischalten.

Applications