3 use Friendica\Core\L10n;
4 use Friendica\Core\PConfig;
6 abstract class wdcal_local
14 * @return array|wdcal_local[]
16 static function getInstanceClasses() {
18 self::LOCAL_US => "wdcal_local_us",
19 self::LOCAL_DE => "wdcal_local_de",
26 * @return null|wdcal_local
28 static function getInstance($config = 0) {
29 $classes = self::getInstanceClasses();
30 if (isset($classes[$config])) return new $classes[$config];
39 static function getInstanceByUser($uid = 0) {
40 $dateformat = PConfig::get($uid, "dav", "dateformat");
41 $format = self::getInstance($dateformat);
42 if ($format == null) $format = self::getInstance(self::LOCAL_US);
51 abstract static function getLanguageCode();
58 abstract static function getName();
65 abstract static function getID();
71 function date_local2timestamp($str) {
72 $x = $this->date_parseLocal($str);
73 return mktime($x["hour"], $x["minute"], $x["second"], $x["month"], $x["day"], $x["year"]);
81 abstract function date_parseLocal($str);
88 abstract function date_timestamp2local($ts);
95 abstract function date_timestamp2localDate($ts);
101 abstract function getFirstDayOfWeek();
107 abstract function dateformat_js_dm1();
112 abstract function dateformat_js_dm2();
118 abstract function dateformat_js_dm3();
124 abstract function dateformat_datepicker_js();
131 abstract function dateformat_datepicker_php($ts = 0);
137 class wdcal_local_us extends wdcal_local {
143 static function getLanguageCode() {
150 static function getName() {
151 return L10n::t("U.S. Time Format (mm/dd/YYYY)");
158 static function getID() {
159 return wdcal_local::LOCAL_US;
166 function date_parseLocal($str) {
167 return date_parse_from_format("m/d/Y H:i", $str);
175 function date_timestamp2local($ts)
177 return date("m/d/Y H:i", $ts);
184 function date_timestamp2localDate($ts) {
185 return date("l, F jS Y", $ts);
191 function getFirstDayOfWeek() {
198 function dateformat_js_dm1() {
205 function dateformat_js_dm2() {
212 function dateformat_js_dm3() {
219 function dateformat_datepicker_js() {
227 function dateformat_datepicker_php($ts = 0) {
228 return date("m/d/Y", $ts);
232 class wdcal_local_de extends wdcal_local {
238 static function getLanguageCode() {
245 static function getName() {
246 return L10n::t("German Time Format (dd.mm.YYYY)");
253 static function getID() {
254 return wdcal_local::LOCAL_DE;
261 function date_parseLocal($str)
263 return date_parse_from_format("d.m.Y H:i", $str);
270 function date_timestamp2local($ts)
272 return date("d.m.Y H:i", $ts);
279 function date_timestamp2localDate($ts) {
280 return date("l, j. F Y", $ts);
286 function getFirstDayOfWeek() {
293 function dateformat_js_dm1() {
300 function dateformat_js_dm2() {
307 function dateformat_js_dm3() {
314 function dateformat_datepicker_js() {
322 function dateformat_datepicker_php($ts = 0) {
323 return date("d.m.Y", $ts);