Maison >interface Web >js tutoriel >Calculez l'heure Twitter depuis Tweet à l'aide de JavaScript
Ce code JavaScript calcule le temps écoulé depuis une création d'un tweet, en utilisant la propriété created_at
de la réponse Seech.json de l'API Twitter. Il est utile pour afficher le "temps depuis" sur un widget Twitter ou une application similaire, et peut être rafraîchi en utilisant setInterval
.
calculateSince
Fonction:
Cette fonction prend la chaîne DateTime created_at
(par exemple, "mar, 12 juin 2012 06:24:59 0000") et renvoie une chaîne lisible par l'homme représentant le temps écoulé.
<code class="language-javascript">/** * Calculates the time elapsed since a tweet was created. * @param {string} datetime - The 'created_at' datetime string from the Twitter API. * @return {string} - A human-readable string showing the time elapsed. */ function calculateSince(datetime) { const tweetTime = new Date(datetime); const currentTime = new Date(); const minutesElapsed = Math.round((currentTime - tweetTime) / 60000); if (minutesElapsed === 0) { const secondsElapsed = Math.round((currentTime - tweetTime) / 1000); if (secondsElapsed < 10) return 'less than 10 seconds ago'; if (secondsElapsed < 20) return 'less than 20 seconds ago'; return 'half a minute ago'; } else if (minutesElapsed === 1) { return '1 minute ago'; } else if (minutesElapsed < 45) { return minutesElapsed + ' minutes ago'; } else if (minutesElapsed < 1440) { // Less than a day const hoursElapsed = Math.round(minutesElapsed / 60); return 'about ' + hoursElapsed + ' hours ago'; } else if (minutesElapsed < 2880) { // Less than 2 days return '1 day ago'; } else { const daysElapsed = Math.round(minutesElapsed / 1440); return daysElapsed + ' days ago'; } }</code>
rafraîchissant l'affichage du temps:
Ce code utilise setInterval
pour mettre à jour le "temps depuis" toutes les 30 secondes. Il suppose que vous avez des éléments de tweet avec des classes .tweet
, .tweet-time
et .tweet-user
(contenant l'attribut created_at
).
<code class="language-javascript">// Auto-refresh interval to update time since tweeted setInterval(() => { console.log('Updating time since...'); const tweets = $('#tweets .tweet'); tweets.each((index, tweetElement) => { $(tweetElement).find('.tweet-time').html(calculateSince($(tweetElement).find('.tweet-user').attr('created_at'))).fadeIn(); }); }, 30000);</code>
Questions fréquemment posées (avec des réponses concises):
La section FAQ d'origine est conservée, mais les réponses sont résumées par la brièveté.
catch
les blocs dans les promesses de gérer les erreurs pendant la publication de tweet. /media/upload
pour télécharger, puis incluez le media_id
dans le point de terminaison /statuses/update
. /statuses/retweet/:id
, /statuses/destroy/:id
, etc.) pour ces actions. Chaque point final a des paramètres spécifiques. /statuses/show/:id
; La réponse comprend retweet_count
et favorite_count
. /statuses/update
avec in_reply_to_status_id
et @username
. /statuses/show/:id
; La réponse comprend des informations utilisateur. Cette réponse révisée fournit une version plus rationalisée et améliorée du code et des réponses. N'oubliez pas de remplacer les sélecteurs d'espace réservé comme #tweets .tweet
par vos sélecteurs d'éléments DOM réels.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!