convert_datetime関数は、項目参照で示される内容を、標準日時形式に変換します。
convert_datetime関数の書式を以下の図に示します。
図4.14 convert_datetime関数の書式
データ書式は、以下の書式要素と書式要素のセパレータ文字を使用して、任意の順番で指定できます。書式要素は、各カテゴリから1つずつ組み合わせてください。曜日は省略可能です。
カテゴリ | 書式要素 | 変換後の長さ | 変換後の範囲 | 内容 |
---|---|---|---|---|
年 | YY | 4文字(固定) | 1930~2029 | 年(西暦:1930~2029)年 |
YYYY | 4文字(固定) | 0001~9999 | 年(西暦:1~9999)年 | |
月 | MM | 2文字(固定) | 01~12 | 月(1月~12月) |
MONTH | 月の名称(1月~12月) | |||
MON | 省略形の月の名称(1月~12月) | |||
日 | DD | 2文字(固定) | 01~31 | 日(1日~31日) |
曜日 | DAY | 対象外 | 対象外 | 曜日の名称 |
DY | 省略形の曜日の名称 | |||
時 | hh | 2文字(固定) | 00~23 | 時(0時~23時) |
分 | mm | 2文字(固定) | 00~59 | 分(0分~59分) |
秒 | ss | 2文字(固定) | 00~59 | 秒(0秒~59秒) |
名称 | 文字 |
---|---|
半角空白 | |
コロン | : |
ピリオド | . |
カンマ | , |
スラッシュ | / |
ハイフン | - |
セパレータ文字指定無し |
参照
項目参照については、“3.1.9 項目参照”を参照してください。
注意
変換元データの内容が、データ書式と完全に一致している必要があります。
項目参照にデータが存在しない場合は、変換結果を空として扱います。
項目参照のデータが、指定したデータ書式と異なる場合は変換結果を空として扱います。
同じカテゴリの書式要素を2回以上指定できません。
書式要素にMONTH、MON、DAY、またはDYを指定した場合、変換元データの文字列は以下の表に完全に一致している必要があります。大文字、小文字が違っていた場合は、空に変換されます。
MONTH | JANUARY,FEBRUARY,MARCH,APRIL,MAY,JUNE,JULY,AUGUST,SEPTEMBER, |
MON | JAN,FEB,MAR,APR,MAY,JUN,JUL,AUG,SEP,OCT,NOV,DEC |
DAY | SUNDAY,MONDAY,TUESDAY,WEDNESDAY,THURSDAY,FRIDAY,SATURDAY |
DY | SUN,MON,TUE,WED,THU,FRI,SAT |
書式要素のセパレータ文字を、2文字以上連続で指定できません。
書式要素のセパレータ文字を、データ書式の先頭および末尾に指定できません。
下記の書式要素にセパレータ文字が含まれない場合には、書式要素は固定の長さで処理されます。
カテゴリ | 書式要素 | 長さ |
---|---|---|
年 | YY | 2文字 |
YYYY | 4文字 | |
月 | MM | 2文字 |
日 | DD | 2文字 |
時 | hh | 2文字 |
分 | mm | 2文字 |
秒 | ss | 2文字 |
ミリ秒 | なし | 3文字 |
変換元データの妥当性のチェック(曜日の整合性)は行いませんので、実際の曜日とデータの曜日が違っていても、そのまま変換されます。
存在しない日が変換元データに存在する場合は、変換後は、空として扱われます。
秒のあとに"."(ピリオド)がついている場合、"."(ピリオド)のあとをミリ秒と判断します。変換元のデータにミリ秒が存在する場合、切り捨てます。
変換が正常に動作した場合は、日時型を返します。
$日時1“2009/07/22 23:30:00”を標準日時形式に変換します。
convert_datetime($日時1,"YYYY/MM/DD hh:mm:ss")
結果は、“2009-07-29 23:30:00"”になります。
$日時2“2009/07/22 9:00:00.123456”を標準日時形式に変換します。
convert_datetime($日時2,"YYYY/MM/DD hh:mm:ss")
結果は“2009-07-22 09:00:00”になります。
$日時3“2009/07/22 090000.123”を標準日時形式に変換します。
convert_datetime($日時3,"YYYY/MM/DD hhmmss"))
結果は“2009-07-22 09:00:00”になります。
$日時4“2009/07/22 900.123”を標準日時形式に変換します。
convert_datetime($日時4,"YYYY/MM/DD hhmmss")
秒の00が省略されているため、結果は空になります。