0

私はこの文字列をyoutuberssデータから受け取っており、それを取得して保存することはできますが、文字列を操作して使用しようとしているものにする方法がわかりません。

2012-08-08T16:49:52.000Z

上記の文字列を使用して、それを解析し、動画がアップロードされてからどれくらい前に吐き出されるかを示すjquery関数を作成したいと思います。例:1日前、15日前、20日前。解析に手間がかかるとは思いませんが、動画が何日前にアップロードされたかを把握するためのロジックが非常に難しい場合は、アップロード日を月日として表示します。例:8月8日

要するに:

  • 提供された文字列のT文字の前の日付を取得する必要があります
  • 次に、3日前の形式または月日の形式で表示します

私はこれらのどちらかを行う方法がわかりません。うまくいけば、誰かが私を助けることができます。:)

更新:この投稿のコメントのおかげで、残りのアップロード情報から日付を取得して分離しました。

var uploadDate = x.substring(0, x.indexOf('T'));

私にくれ2012-08-08

更新2:月と日を解析しましたsplit()

var date = uploadDate.split('-');
var month = date[1];
var day = date[2];

答えが出された後の私のコード

function differenceDate(dateStr) {
    var dateString = dateStr.split('T')[0];
    var date = dateString.split('-');
    var firstDate = new Date(parseInt(date[0],10), parseInt(date[1],10)-1, parseInt(date[2],10));
    var secondDate = new Date();
    var diffDate = secondDate.getTime() - firstDate.getTime();
    var converted = diffDate/1000/60/60/24;

    var uploaded;
    if(converted < 1){
        uploaded = 'few hours ago';
    } else if(converted>1 && converted<2){
        uploaded = '1 day ago';
    } else if(converted>2){
        var daysAgo = Math.floor(converted);
        uploaded = daysAgo+ ' days ago';
    }

    return uploaded;
}
var daysAgo = differenceDate( '2012-08-08T16:49:52.000Z' );
4

1 に答える 1

1

日付文字列を取得できるので、「T」文字から分割して、結果配列のインデックス0をお気に入りの日付差分関数に送信できると思います:) ie

function millisBetween(dateStr) {

    var dateArray = dateStr.split("-");

    // new Date(year, month, day)
    var firstDate = new Date(parseInt(dateArray[0],10), parseInt(dateArray[1],10) - 1, parseInt(dateArray[2],10));

     // today
    var secondDate = new Date();

    var millisBetween = secondDate.getTime() - firstDate.getTime();

    return millisBetween;
}

var strDatePart = "2012-08-08T16:49:52.000Z".split("T")[0];
var millis = millisBetween(strDatePart); // date difference in milliseconds

この後、あなたがしなければならないのは、ミリ変数をチェックして、ビデオがほんの数分前、数時間前、またはおそらく数年前にアップロードされたかどうかを確認することです。

于 2012-08-09T06:01:21.160 に答える