Ich möchte ein Datum aus meiner Datenbank abrufen, das als Unix-Zeitstempel gespeichert und in das JJJJ/MM/TT-Format konvertiert wird.Das Übergeben einer Variablen an DateTime.strptime führt zu TypeError: keine implizite Konvertierung von Fixnum in String
DateTime.strptime('1462406400','%s')
=> Thu, 05 May 2016 00:00:00 +0000
Aber wenn ich eine Variable übergeben, der den Unix-Zeitstempel ich eine Fehlermeldung enthält
In der Ansicht
<div>Your first invoice will be due <%= DateTime.strptime(sub.start_date,'%s') %></div>
TypeError: no implicit conversion of Fixnum into String
Was ist der richtige Weg sub.start_date
-DateTime.strptime
passieren?
Welcher Datentyp ist 'sub.start_date'? Ist es schon eine 'DateTime' oder ähnliches? Können Sie 'sub.start_date.to_s' ohne die' DateTime.strptime' verwenden? Vielleicht möchten Sie sich auch die Methode [Date # strftime] (http://ruby-doc.org/stdlib-1.9.3/libdoc/date/rdoc/Date.html#method-i-strftime) ansehen. –
'sub.start_date' wird als 'Integer'-Wert in der Datenbank gespeichert. Es gibt einen Wert wie '1461801600' –
Oh natürlich, der Fehler sagt uns, dass. Also wandle es in einen String um: 'sub.start_date.to_s' –