-1

この形式のように、データベースのテーブルからこの日付を取得していました

Sunday 16th of January 2011 06:55:41 PM

そして、私はそれをこの形式のように変換したい

11-05-2012

日付関数または任意の関数でそれを行う方法

日付関数を使用する場合

 <td><?php echo date('d-m-Y', $v['v_created']); ?></td>

エラーメッセージが表示されます

 'Severity: Warning

Message: date() expects parameter 2 to be long, string given'
4

5 に答える 5

2

これは私にとってはうまくいきます(ローカルWebサーバーでテストしただけです)

<?php

date_default_timezone_set ('Europe/Rome');

$date = "Sunday 16th of January 2011 06:55:41 PM";

//.Strip "of" messing with php strtotime
$date = str_replace('of', '', $date);

$sql_friendly_date = date('y-m-d H:i', strtotime($date));

echo $sql_friendly_date;

?>

Date 関数の最初のパラメーターを次のように変更して、日付をフォーマットできます。http://it2.php.net/manual/en/function.date.php

于 2012-08-13T09:29:49.610 に答える
1

次の形式があります。

 Sunday 16th of January 2011 06:55:41 PM

これは文字列ベースの形式であるため、日付情報は多かれ少なかれ人間が読める形式にエンコードされます。幸いなことに英語で。見てみましょう、それはすべてスペースで区切られた複数のものです:

 Sunday   - Weekdayname
 16th     - Date of Month, numeric, st/nd/th form
 of       - The string "of".
 January  - Monthname 
 2011     - Year, 4 digits
 06:55:41 - Hour 2 digits 12 hours; Colon; Minute 2 digits; Colon; Seconds 2 digits
 PM       - AM/PM

したがって、各ノードをスペースで区切り、データを分析できます。必要なのはすべての Monthnames とsscanf関数だけです。これは、月、月の日付、および年のみが必要なためです。

$input = 'Sunday 16th of January 2011 06:55:41 PM';
$r = sscanf($input, "%*s %d%*s of %s %d", $day, $monthname, $year);

これにより、次の変数が既に提供されます。

$monthname - string(7) "January"
$day       - int(16)
$year      - int(2011)

したがって、あとは月名をマップ (PHP の配列の形式) とフォーマットされた出力で実行できる数値に転置するだけです。

$monthnames = array(
    'January' => 1,
    # ...
);

printf("%02d-%02d-%04d", $day, $monthnames[$monthname], $year);

したがって、どのような問題があっても、入力がある程度一貫してフォーマットされている限り、それを分解し、取得したデータを処理し、必要に応じて出力を行うことができます。それがどのように機能するかです。

于 2012-08-13T09:53:01.933 に答える
0

これを試して。いつも私のために働いた

$date = Sunday 16th of January 2011 06:55:41 PM

$new_date = date('d-M-Y', strtotime($date));

echo $new_date;
于 2012-08-13T09:23:18.397 に答える
0

使用している形式がSunday 16th of January 2011 06:55:41 PM間違っています。データベースに挿入されたこの日付は、データベースに挿入された日付の値よりもdate(Ymd)である必要があります:-11-05-2012。これをフェッチして、必要な形式を取得できます。

于 2012-08-13T09:23:52.513 に答える
0
<?php

$old_date = date('l, F d y h:i:s');         // returns Saturday, January 30 10 02:06:34

$new_date = date('d-M-Y', strtotime($old_date));

echo $new_date
?>




     more details about date plz visit this url

    http://www.php.net/manual/en/datetime.createfromformat.php
于 2012-08-13T09:33:16.397 に答える