2

PHPで日付を変換しようとしていますが、成功していません。どんな助けでも本当にかなりの価値があります。

私のコード:

$playing_dates='06/03/2013|13/03/2013|20/03/2013|27/03/2013|03/04/2013|10/04/2013|17/04/2013|24/04/2013|01/05/2013|08/05/2013|15/05/2013|22/05/2013|29/05/2013';

$playing_dates = explode("|", $playing_dates);
for($i=0; $i<count($playing_dates);$i++){
    $playing = strtotime($playing_dates[$i]);
    echo $playing_dates[$i]." --> ".$playing." -->";
    echo date('D, j M Y H:i:s', $playing)."</br>";
}

実際の出力:

06/03/2013 --> 1370214000 -->Mon, 3 Jun 2013 00:00:00
13/03/2013 --> -->Thu, 1 Jan 1970 01:00:00
20/03/2013 --> -->Thu, 1 Jan 1970 01:00:00
27/03/2013 --> -->Thu, 1 Jan 1970 01:00:00
03/04/2013 --> 1362355200 -->Mon, 4 Mar 2013 00:00:00
10/04/2013 --> 1380841200 -->Fri, 4 Oct 2013 00:00:00
17/04/2013 --> -->Thu, 1 Jan 1970 01:00:00
24/04/2013 --> -->Thu, 1 Jan 1970 01:00:00
01/05/2013 --> 1357344000 -->Sat, 5 Jan 2013 00:00:00
08/05/2013 --> 1375657200 -->Mon, 5 Aug 2013 00:00:00
15/05/2013 --> -->Thu, 1 Jan 1970 01:00:00
22/05/2013 --> -->Thu, 1 Jan 1970 01:00:00
29/05/2013 --> -->Thu, 1 Jan 1970 01:00:00

期待される出力:

06/03/2013 --> 1370214000 -->Wed, 6 Mar 2013 00:00:00
13/03/2013 --> -->Wed, 13 Mar 2013 00:00:00
20/03/2013 --> -->Wed, 20 Mar 2013 00:00:00
27/03/2013 --> -->Wed, 27 Mar 2013 00:00:00
03/04/2013 --> 1362355200 -->Wed, 3 April 2013 00:00:00
10/04/2013 --> 1380841200 -->Wed, 10 April 2013 00:00:00
17/04/2013 --> -->Wed, 17 April 2013 00:00:00
24/04/2013 --> -->Wed, 24 April 2013 00:00:00
01/05/2013 --> 1357344000 -->Wed, 1 May 2013 00:00:00
08/05/2013 --> 1375657200 -->Wed, 8 May 2013 00:00:00
15/05/2013 --> -->Wed, 15 May 2013 00:00:00
22/05/2013 --> -->Wed, 22 May 2013 00:00:00
29/05/2013 --> -->Wed, 29 May 2013 00:00:00
4

3 に答える 3

1

これを試して、動作するかどうかを確認してください:

for($i=0; $i<count($playing_dates);$i++){
    $date = DateTime::createFromFormat('d/m/Y', $playing_dates[$i]);
    $newformat = $date->format('D, j M Y H:i:s');
    $playing = strtotime($date);

    echo $playing_dates[$i]." --> ".$playing." -->";
    echo $newformat ."</br>";
}

編集:

<?php
$playing_dates='06/03/2013|13/03/2013|20/03/2013|27/03/2013|03/04/2013|10/04/2013|17/04/2013|24/04/2013|01/05/2013|08/05/2013|15/05/2013|22/05/2013|29/05/2013';
$playing_dates = explode("|", $playing_dates);
for($i=0; $i<count($playing_dates);$i++){
    $date = DateTime::createFromFormat('d/m/Y', $playing_dates[$i]);
    $newformat = $date->format('D, j M Y H:i:s');
    $playing = strtotime($date->format("Y-m-d"));

    echo $playing_dates[$i]." --> ".$playing." -->";
    echo $newformat ."</br>";
}
?>

06/03/2013 --> 1362524400 -->Wed, 6 Mar 2013 18:31:10
13/03/2013 --> 1363129200 -->Wed, 13 Mar 2013 18:31:10
20/03/2013 --> 1363734000 -->Wed, 20 Mar 2013 18:31:10
27/03/2013 --> 1364338800 -->Wed, 27 Mar 2013 18:31:10
03/04/2013 --> 1364940000 -->Wed, 3 Apr 2013 18:31:10
10/04/2013 --> 1365544800 -->Wed, 10 Apr 2013 18:31:10
17/04/2013 --> 1366149600 -->Wed, 17 Apr 2013 18:31:10
24/04/2013 --> 1366754400 -->Wed, 24 Apr 2013 18:31:10
01/05/2013 --> 1367359200 -->Wed, 1 May 2013 18:31:10
08/05/2013 --> 1367964000 -->Wed, 8 May 2013 18:31:10
15/05/2013 --> 1368568800 -->Wed, 15 May 2013 18:31:10
22/05/2013 --> 1369173600 -->Wed, 22 May 2013 18:31:10
29/05/2013 --> 1369778400 -->Wed, 29 May 2013 18:31:10
于 2013-03-28T17:16:34.913 に答える
1

strtotime()関数は mm/dd/yyyy 形式の引数を受け取ります

さまざまな日付形式については、こちらを参照してください。

したがって、2013 年 3 月 6 日水曜日 00:00:00 を取得するには、03/06/2013 を使用します。

于 2013-03-28T17:18:49.570 に答える
0

strtotime()ほとんどの形式を取り、それを UNIX タイムスタンプに変換します。ただし、混同してMM/DD/YYYYしまいDD/MM/YYYYます。

ここには多くの解決策があります... 1 つは、期待する形式を使用して、日付スタンプを展開することです。

foreach($playingdates as $datestamp) {
    list($day, $month, $year) = explode('/', $datestamp);
    $playtime = mktime(0, 0, 0, $month, $day, $year);
    // do whatever you want with $playtime
}
于 2013-03-28T17:41:49.853 に答える