Date Format is always 'sql' when a filter is added to a view. Even if the filter is exposed.

In my case, I need to display 'local' date format.

I modify some code, I hope it could help you, I think you need to change it :

In "date_api_filter_handler.inc"
Replace :

function date_parts_form(....
...
$format = $this->date_handler->views_formats($this->options['granularity'], 'sql');

By

function date_parts_form(....
...
$format = $this->date_handler->views_formats($this->options['granularity'], 'display');

In date_api_sql.inc
Replace

function views_formats(...
...
$long = str_replace(':i', ':i:s', variable_get('date_format_long',  'l, F j, Y - H:i'));

By

function views_formats(...
...
$long = str_replace(':i', ':i:s', variable_get('date_format_short',  'l, F j, Y - H:i'));
Support from Acquia helps fund testing for Drupal Acquia logo

Comments

KarenS’s picture

Category: bug » feature

Not a bug report.

plach’s picture

Version: 6.x-2.0 » 6.x-2.x-dev
Status: Needs work » Needs review
FileSize
4.13 KB

I had the same need, the attached patch did the trick for me

Marko B’s picture

graoxx stuff works for me, plach patch didnt :-)

cels’s picture

#2 patch
no problems with date 2.4 and views 2.8

Iztok’s picture

First hack worked for me.

pokadan’s picture

Works great outta the box. Just aply for views 2.8 Date 2.4

djschoone’s picture

This works, but will it be integrated in a newer version? And what other functionality is affected by this?

scottrigby’s picture

@plach nice work! no probs here

plach’s picture

Status: Needs review » Reviewed & tested by the community

It looks like this is RTBC, let's get a word from Karen.

YK85’s picture

will this work for views 3?
thanks!

Daniel Wentsch’s picture

Hey there,

am I missing something or has date module changed? I can't find a file called date_api_sql.inc inside my date module folder.

Cheers,
klickreflex

bibo’s picture

+Subscribe.

Hoping this gets committed, I'm getting tired of patching date all the time.

mstrelan’s picture

This doesn't seem to work for me but here's another solution

<?php
// Called from hook_form_alter ...
function _mymodule_views_exposed_form_alter(&$form, $form_state) {
  array_unshift($form['#submit'], 'mymodule_views_exposed_form_submit');
}

/**
 * Ensure the system recognises the dates aren't American.
 */
function mymodule_views_exposed_form_submit($form, &$form_state) {
  if (isset($form_state['values']['post_date'])) {
    foreach($form_state['values']['post_date'] as $key => $value) {
      $form_state['values']['post_date'][$key] = str_replace('/', '-', $value);
    }
  }
}
?>

Basically according to http://www.php.net/manual/en/datetime.formats.date.php PHP will only assume its an American date format if it uses a forward slash. As far as I know Australians also use forward slashes and therefore are likely to type in forward slashes. These are converted to hyphens and the system searches in Australian (normal) format

YK85’s picture

+1 for commit

gunzip’s picture

Category: feature » bug

actually this _is_ a bug report as the filter won't work at all with locale dates and without this patch, so please commit it :)

Shademan’s picture

Please commit this, customers are going caaraaaazy about this :/

cossme’s picture

subscribing

galaxor’s picture

subscribing

KarenS’s picture

Status: Reviewed & tested by the community » Needs work

I see two approaches, one a patch and one not, and numerous reports that one or the other didn't work. This is not a single patch that everyone agrees will work, it is two patches with some people saying one works and some saying the other works.

Please clean this up if you want me to commit it :)

KarenS’s picture

Actually it is *three* approaches -- one a complete patch and two that are just descriptions of a fix.

gunzip’s picture

#2 works for me (view 6.x-2.11 - date 6.x-2.6)
i suspect ppl that says it does not work didn't changed/apply the correct view filter settings.

killua99’s picture

Like gunzip,

#2 works for me (view 6.x-2.12 - date 6.x-2.7)
You need select the DATE FORMAT under the type input date (is a textfield and you need something like 'm-d-Y').

mstrelan’s picture

Did anybody try this with date_popup?

I have been able to apply #2 and set my format to d/m/Y however it only works with text (have not tried select). Does not work with popup, which would be why I posted my own solution in #13.

My query string
date_filter[min][date]=1/05/2011&date_filter[max][date]=31/5/2011

Query output
AND ((DATE_FORMAT(ADDTIME(node_data_field_event_session_date_time.field_event_session_date_time_value, SEC_TO_TIME(node_data_field_event_session_date_time.field_event_session_date_time_offset)), '%Y-%m-%d') >= '0001-11-30' AND DATE_FORMAT(ADDTIME(node_data_field_event_session_date_time.field_event_session_date_time_value, SEC_TO_TIME(node_data_field_event_session_date_time.field_event_session_date_time_offset)), '%Y-%m-%d') <= '0001-11-30') AND (DATE_FORMAT(ADDTIME(node_data_field_event_session_date_time.field_event_session_date_time_value2, SEC_TO_TIME(node_data_field_event_session_date_time.field_event_session_date_time_offset)), '%Y-%m-%d') >= '0001-11-30' AND DATE_FORMAT(ADDTIME(node_data_field_event_session_date_time.field_event_session_date_time_value2, SEC_TO_TIME(node_data_field_event_session_date_time.field_event_session_date_time_offset)), '%Y-%m-%d') <= '0001-11-30')

I will keep trying to see if I can find the solution.

KarenS, thank you for taking the time to look at our messy and incomplete issue. I think what we are looking for is not just a commit, but with your expertise with the Date module perhaps you could provide some advice?

mstrelan’s picture

Status: Needs work » Needs review
FileSize
4.78 KB

As usual I have found the solution soon after commenting so here is my patch. It is based on #2 but includes support for date_popup.

Before RTBC we need to review the following

  1. Line #65 of my patch - this seems flimsy and probably needs some checks, like is Views installed?
  2. Does this work with select date types?
gibus’s picture

Status: Needs review » Reviewed & tested by the community

works like a charm

arrebucio’s picture

subscribing...

ParisLiakos’s picture

works perfectly for me.
Thanks for the patch mstrelan..

any chance on being commited?

ParisLiakos’s picture

Status: Reviewed & tested by the community » Needs work

ok actually i take it back..it breaks my forms...any forms that use popup with FAPI...

function test_form() {
  $form['test-from'] = array(
    '#type' => 'date_popup',
    '#title' => 'From',
    '#date_format' => 'Y-m-d',
    '#date_year_range' => '-3:+0',
);
  $form['test-to'] = array(
    '#type' => 'date_popup',
    '#title' => 'To',
    '#date_format' => 'Y-m-d',
    '#date_year_range' => '-3:+0',
);
  $form['submit'] = array(
    '#type' => 'submit',
    '#value' => t('Save'),
  );
  return $form;
}
function get_user_stats_form_submit($form_id, $form_values) {
  drupal_set_message($form_values['values']['test-from']);
}

returns -0001-11-30 00:00:00 no matter what date i choose in the form using popup calendar :/

hlykos’s picture

subscribe

klonos’s picture

Does this issue still make sense? Does it apply to 7.x?

Chris Charlton’s picture

Issue summary: View changes

Still an issue?

DamienMcKenna’s picture

Status: Needs work » Closed (won't fix)

Unfortunately the D6 version of this module is no longer supported, but we appreciate the time you put into this. If this problem is relevant for D7 too, please reopen the issue. Thanks.