[RUBY] Mettre en forme la date et l'heure données par created_at

J'avais du mal à formater le created_at généré par sql, donc une note sur la façon de l'implémenter

fichier sql

Créez une table.

table.sql


create table todos
(
  id integer PRIMARY key,
  body text,
  created_at
);

fichier rb

Utilisez l'enregistrement actif pour lier la table todos créée précédemment à l'objet.

tlist.rb


class Todos < ActiveRecord::Base
  validates :body, presence: true
end

Stockez l'objet dans une variable d'instance.

tlist.rb


get '/' do
  @todos = Todos.all
  erb :index
end

fichier erb

Essayez d'afficher l'heure.

index.erb


  <div class="user_box">
    <p class="user_name">Shuto</p>
    <ul>
      <% @todos.where(users_userName: "Shuto").each do |todo|%>
      <li data-id = "<%= todo.id%>" data-token = "<%= Rack::Csrf.csrf_token(env)%>">
          <div class="one">
            <%= Rack::Utils.escape_html(todo.body)%>
          </div>
          <div class="time">
            <%= todo.created_at%>
            <span class="delete">[x]</span>
          </div>
      </li>
      <% end%>
    </ul>
  </div>

Quand je l'ai exécuté, il y a des parties inutiles, donc je veux le formater. スクリーンショット 2020-07-02 22.21.28.png

Après enquête, il semble qu'il puisse être formaté avec la méthode strftime. Appliquez et exécutez la méthode.

index.erb


  <div class="user_box">
    <p class="user_name">Shuto</p>
    <ul>
      <% @todos.where(users_userName: "Shuto").each do |todo|%>
      <li data-id = "<%= todo.id%>" data-token = "<%= Rack::Csrf.csrf_token(env)%>">
          <div class="one">
            <%= Rack::Utils.escape_html(todo.body)%>
          </div>
          <div class="time">
            <%= todo.created_at.strftime("%Y/%m/%d %H:%M:%S")%>
            <span class="delete">[x]</span>
          </div>
      </li>
      <% end%>
    </ul>
  </div>

J'étais en colère que ce soit une chaîne de caractères.

スクリーンショット 2020-07-02 22.22.14.png

Il semble qu'il soit nécessaire de le convertir en autre chose qu'une chaîne de caractères, alors essayez de le convertir en type de date.

index.erb


  <div class="user_box">
    <p class="user_name">Shuto</p>
    <ul>
      <% @todos.where(users_userName: "Shuto").each do |todo|%>
      <li data-id = "<%= todo.id%>" data-token = "<%= Rack::Csrf.csrf_token(env)%>">
          <div class="one">
            <%= Rack::Utils.escape_html(todo.body)%>
          </div>
          <div class="time">
            <%= todo.created_at.to_date.strftime("%Y/%m/%d %H:%M:%S")%>
            <span class="delete">[x]</span>
          </div>
      </li>
      <% end%>
    </ul>
  </div>

La date est correcte, mais l'heure est incorrecte. スクリーンショット 2020-07-02 22.23.14.png

Convertissez-le en type d'heure et exécutez-le.

index.erb


  <div class="user_box">
    <p class="user_name">Shuto</p>
    <ul>
      <% @todos.where(users_userName: "Shuto").each do |todo|%>
      <li data-id = "<%= todo.id%>" data-token = "<%= Rack::Csrf.csrf_token(env)%>">
          <div class="one">
            <%= Rack::Utils.escape_html(todo.body)%>
          </div>
          <div class="time">
            <%= todo.created_at.to_time.strftime("%Y/%m/%d %H:%M:%S")%>
            <span class="delete">[x]</span>
          </div>
      </li>
      <% end%>
    </ul>
  </div>

Il était affiché correctement. スクリーンショット 2020-07-02 22.23.43.png

Vous devez savoir quel format il est donné lorsque vous rencontrez une erreur.

Le prototype de cette application est basé sur Introduction à sinatra de l'installation dot.

Recommended Posts

Mettre en forme la date et l'heure données par created_at
Date et l'heure
Obtenez la date et l'heure actuelles en spécifiant le fuseau horaire dans Thymeleaf
Analyser en Java les chaînes de date et d'heure formatées par la fonction asctime du langage C
Qu'est-ce que la classe LocalDateTime? [Java débutant] -Date et classe d'heure-
Réglez la date et l'heure à partir de la chaîne de caractères avec POI
[Java] Utilisez ResolverStyle.LENIENT pour bien gérer la date et l'heure
[MySQL] [java] Date et heure de réception
Vérifiez la date et l'heure réelles lors de l'analyse avec SimpleDateFormat de Java
Le concept de conception de l'API de date et d'heure de Java est intéressant
La relation entre la vérification stricte de la date Java et l'heure d'été
Ajoutez la date aux statistiques GC acquises par gcutil et affichez-la.
Explication des objets Ruby Time et Date
[Java] Comment régler la date sur 00:00:00
Comment afficher la date et l'heure du jour par défaut: supprimer moins d'une seconde
[Java] Obtenez et affichez la date 10 jours plus tard à l'aide de l'API Time ajoutée à partir de Java 8.
Murs touchés par le premier Rspec
Méthode d'acquisition de la date et de l'heure à l'aide de l'API DateAndTime
La date et l'heure de java8 ont été mises à jour
Format de la sortie du journal par Tomcat lui-même dans Tomcat 8
Comparaison de vitesse au moment de la génération au moment de la conversion de la date
Changer la date et l'heure en notation japonaise dans Rails
[Rails] Précautions lors de la comparaison de la date et de l'heure avec DateTime
Apprentissage pour la première fois des expressions et opérateurs Java # 3
Convivialité de la classe de date et d'heure dans chaque langue
[Kotlin] Convertit ZonedDateTime en chaîne en spécifiant le format
Traitement de la date et de l'heure en Ruby. Utilisez correctement la date et l'heure.
[Rails] Validez l'heure de début (type datetime) et l'heure de fin