Display matrix block which share the same date field value
I think what you're saying is that you only want to output the heading once it's different from the previous heading. So if you have two blocks with the same week, we only show it once.

You can set a variable of week and check that the current block's week (which I've set as tempWeek to keep code cleaner) is the same. If it isn't the same, it means we've changed week so display the title and then set week to be this new week.

{% set week = "" %}
{% for block in entry.timeSheet %}
    {% set tempWeek = block.week|date('j M Y') %}
    {% if tempWeek!=week %}
        &lt;strong&gt;W/C: {{ block.week|date('j M Y') }}&lt;/strong&gt;&lt;br /&gt;
        {% set week = tempWeek %}
    {% endif %}
    {% if block.totalTime | length %}
        {{ block.totalTime }}&lt;br&gt;
    {% endif %}
    {{ not loop.last ? '&lt;hr&gt;' }}
{% endfor %}