1: <?php
2: /*
3: * Copyright (c) 2014 @trashtoy
4: * https://github.com/trashtoy/
5: *
6: * Permission is hereby granted, free of charge, to any person obtaining a copy of
7: * this software and associated documentation files (the "Software"), to deal in
8: * the Software without restriction, including without limitation the rights to use,
9: * copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the
10: * Software, and to permit persons to whom the Software is furnished to do so,
11: * subject to the following conditions:
12: *
13: * The above copyright notice and this permission notice shall be included in all
14: * copies or substantial portions of the Software.
15: *
16: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
18: * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
19: * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
20: * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
21: * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22: */
23: /**
24: * PHP class file.
25: * @auhtor trashtoy
26: * @since 2.0.0
27: */
28: namespace Peach\DT;
29:
30: /**
31: * 文字列から時間オブジェクトへの変換と, 時間オブジェクトから文字列への変換をサポートするインタフェースです.
32: * このインタフェースで定義されている各メソッドは, 以下の場所から使われることを想定しています.
33: * ユーザー自身がこれらのメソッドを呼び出す機会は基本的にありません.
34: *
35: * - {@link Time::format}
36: * - {@link Date::parse}
37: * - {@link Datetime::parse}
38: * - {@link Timestamp::parse}
39: */
40: interface Format
41: {
42: /**
43: * 指定された文字列を解析して DATE 型の時間オブジェクトに変換します.
44: * 解析に失敗した場合は例外をスローします.
45: *
46: * @param string $format 解析対象の文字列
47: * @return Time 解析結果
48: */
49: public function parseDate($format);
50:
51: /**
52: * 指定された文字列を解析して DATETIME 型の時間オブジェクトに変換します.
53: * 解析に失敗した場合は例外をスローします.
54: *
55: * @param string $format 解析対象の文字列
56: * @return Time 解析結果
57: */
58: public function parseDatetime($format);
59:
60: /**
61: * 指定された文字列を解析して TIMESTAMP 型の時間オブジェクトに変換します.
62: * 解析に失敗した場合は例外をスローします.
63: *
64: * @param string $format 解析対象の文字列
65: * @return Time 解析結果
66: */
67: public function parseTimestamp($format);
68:
69: /**
70: * 指定された Date オブジェクトを書式化します.
71: *
72: * @param Date $d 書式化対象の時間オブジェクト
73: * @return string このフォーマットによる文字列表現
74: */
75: public function formatDate(Date $d);
76:
77: /**
78: * 指定された Datetime オブジェクトを書式化します.
79: *
80: * @param Datetime $d 書式化対象の時間オブジェクト
81: * @return string このフォーマットによる文字列表現
82: */
83: public function formatDatetime(Datetime $d);
84:
85: /**
86: * 指定された Timestamp オブジェクトを書式化します.
87: *
88: * @param Timestamp $d 書式化対象の時間オブジェクト
89: * @return string このフォーマットによる文字列表現
90: */
91: public function formatTimestamp(Timestamp $d);
92: }
93: