1: <?php
2: 3: 4: 5: 6: 7:
8:
9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29:
30: function smarty_modifier_date_format($string, $format = null, $default_date = '', $formatter = 'auto')
31: {
32: if ($format === null) {
33: $format = Smarty::$_DATE_FORMAT;
34: }
35: 36: 37:
38: require_once(SMARTY_PLUGINS_DIR . 'shared.make_timestamp.php');
39: if ($string != '' && $string != '0000-00-00' && $string != '0000-00-00 00:00:00') {
40: $timestamp = smarty_make_timestamp($string);
41: } elseif ($default_date != '') {
42: $timestamp = smarty_make_timestamp($default_date);
43: } else {
44: return;
45: }
46: if ($formatter == 'strftime' || ($formatter == 'auto' && strpos($format, '%') !== false)) {
47: if (DS == '\\') {
48: $_win_from = array('%D', '%h', '%n', '%r', '%R', '%t', '%T');
49: $_win_to = array('%m/%d/%y', '%b', "\n", '%I:%M:%S %p', '%H:%M', "\t", '%H:%M:%S');
50: if (strpos($format, '%e') !== false) {
51: $_win_from[] = '%e';
52: $_win_to[] = sprintf('%\' 2d', date('j', $timestamp));
53: }
54: if (strpos($format, '%l') !== false) {
55: $_win_from[] = '%l';
56: $_win_to[] = sprintf('%\' 2d', date('h', $timestamp));
57: }
58: $format = str_replace($_win_from, $_win_to, $format);
59: }
60:
61: return strftime($format, $timestamp);
62: } else {
63: return date($format, $timestamp);
64: }
65: }
66: