私はこれを読んでいました 質問 相対的な日付と時刻のフォーマットについてですが、まだ対処されていないと感じた問題がまだ残っています。
私はしたいと思います:
相対時間は1単位に保ちます。たとえば、1 hour ago
ではなく1 hour and 24 minutes ago
にします。
時刻/日付がホバーされると、ローカライズされた日付が表示されます(例:Tuesday, 24 July 2012 at 10:00 PM
)。
上記の場合:
時間を切り上げるか切り捨てますか?たとえば、1 hour and 24 minutes ago
をhours
にどのように変換すればよいですか?
相対日数をYesterday
、2 Days ago
、3 Days ago
、またはYesterday
、Tuesday
、Monday
として表示する必要がありますか?
どの時点で2 Days ago
、Tuesday
、Monday
で停止し、ローカライズされた日付の表示に戻る必要がありますか?
weeks
とmonths
の相対時間/日付を気にする必要がありますか?
時間コンポーネントをドロップして日付/日を表示する必要があるのはいつですか?
丸め-「1時間24分」が1.5時間未満になるように、浮動小数点数と同じルールを適用する必要があるため、「1時間」に切り捨てる必要があります。 30分経過したら切り上げます。
「昨日」「2日前」などで行きます。
Stack Exchangeの簡単なチェックは、彼らが「昨日」、「2日前」、ローカライズされた日付を使用していることを示していますが、Facebookは曜日に行きます。答えは、日付を正確にする必要があるかどうかに依存すると思います。ユーザーは正確な日付を知る必要がありますか(「今日」と「昨日」からは簡単に計算できますが、「月曜日」または「金曜日」からは少し難しい)、または「今週のいつか」または「最近」良いですか足りる?
日付が2〜3日経過しているときに、「少し前」ではなく、実際の日付として古い日付を既に表示している場合、週と月の相対日付は関係がないように見えます。
1年前の日付の時間コンポーネントは無関係であるように見えますが、古い日付に対してそれを非表示にする追加のコーディング作業の価値はおそらくありません。時間を隠すことの利点(もしあれば)は、おそらく、必要なコードを記述して維持するコストに見合う価値はありません。
ただし、これらすべての場合、日付と時刻をどの程度正確にする必要があるかによって異なります。表示された値ができるだけ正確であることが重要ですか、それともツールチップの正確な日付/時刻で問題ないですか?
丸め:丸めは常に不正確さを引き起こすことを理解してください。あなたが本当にアイデアを先に進めたいのであれば、ここに私の提案があります:
私の概念を説明するために、例として「週」を取り上げましょう。 (今すぐカレンダーを取得したいかもしれません...)今日の日は7月26日木曜日です。
一見すると、これは単純な数学的丸め(対称丸め?)のように見えるかもしれませんが、そうではありません!
今日が7月28日土曜日であるとします。どちらの例もまだ有効です。2週間前に医者に行き、3週間前に映画に行きました。
タイムスパン自体を見て丸めないでください。過去のイベントが発生した週(つまり、映画の場合は週27)と、現在の曜日(週30)を特定する必要があります。両方(30-27)を引くと、週単位の時差になります!
この概念は、時間単位、時間、日、週、月、年、世紀などに適用できます...
「おおよそ」、「以上」、「少なくとも」、「ほぼ」などの表現を使用したくない場合に行うのが最も自然なことです...)
まず、私はあなたが複数のユニットを使用したくない非常に正当な理由があると仮定しています。一般的に、人が自然に使用する単位を使用するのが最善であり、ほとんどの人は、1時間だけではなく、1時間14分でより多く行くでしょう。しかし、疑いの恩恵をあなたに与えることは、あなたがしなければならなかったと仮定すると、これは私がお勧めするものです:
時間が1時間45分前の場合、2時間に切り上げないでください。ほとんどの人は、指定された時間を最小量として取るためです。いくつかのWordを使用してコンテキストを提供します。次に例を示します。
1つの単位に丸めるルートに行く場合は、日付を相対的な用語で表示し続け、誰かがそれにマウスを合わせるかクリックしたときの正確な日付/時刻を示します。そのため、単位を分、時間、日、週、月、年に維持します。 突然、相対時間から正確な時間に切り替えるのは混乱を招くので、避ける必要があります。
そのような場合の一般的な解決策はないようです—それはタスクと目標に依存します。機器の保証および修理情報を表示するダッシュボードのケースがありました。私はそのような仮定をしました(おそらく一般的なケースには不適切です):
1)タイムスタンプと日付の丸めは正しくありません。正しい値と丸められた値を区別することができないため、ユーザーが混乱する可能性があります。相対値(「1時間23分35秒前」)のみが丸められます。
2)日付/時刻が現在の日付に近いほど、正確に表示されます。たとえば、レビュー/修復アクティビティを開始するのに2日かかる場合、2日と表示する必要があります(正確な日時)。ただし、2015.12.28に機器を確認する必要がある場合は、「3年以上、「2015年12月」、またはイベント「2015年」と言えば十分です。
3)より人間的でタスク指向であり、数学的丸めが少ないほど優れています。たとえば、「1時間29分前」は、アラートメッセージの場合は「1時間以上前」に、ニュースフィードの場合は「2時間未満」に丸めることができます(ただし、数値の代わりにこのようなテキスト形式の使用を読みやすくする必要があります) —たとえば、通常、リストやテーブルには適用されません)。
4)正確な日付と時刻を組み合わせ、視覚的に個別に丸めた相対値を組み合わせると、日付/時刻が重要なアプリケーション(プランナーやこのダッシュボードなど)でより効果的です。
したがって、そのような前提で、あなたの質問に答えます:
1)はい、四捨五入は相対的な値に適用できます。理解しやすいからです(現在の時刻と比較する必要はありません)。
2)現実的な値の代わりに曜日名を使用すると、理解が難しくなる可能性があります。そのため、追加の認知的取り組みが必要になります。
3)はい、日と月の相対値は一部の日付/時刻の重要なシナリオで役立ちますが、(ニュースフィードのように)単純な情報メッセージの場合は不必要です。
4)時間がそれほど重要ではなく、その瞬間が2日以上前(または2日後)の場合は、時間を短縮できます。