Remove year from title

Yes the problem is with the hyphen. WordPress converts hyphens with with spaces to en-dash. Following is the conversion with hyphens with WordPress:

  1. Foo {3 hyphens, spaced} Bar → Foo — Bar (em-dash)

  2. Foo{3 hyphens, no space}Bar → Foo—Bar (em-dash)

  3. Foo {2 hyphens, spaced} Bar → Foo — Bar (em-dash)

  4. Foo{2 hyphens, no space}Bar → Foo–Bar (en-dash)

  5. Foo {1 hyphen, spaced} Bar → Foo – Bar (en-dash)

Refer here for this.

For your specific issue, you can do the following. This has a limitation that date should be at the last of the title.

// WP converts hyphens with spaces to n-dash, so convert them to hyphen again.
$title = str_replace( array( ' ', ' ', '–', '–', '—', '—' ), '-', get_the_title() );
// Explode using hyphen;
$title =  explode( '-', $title );
// Remove last element i.e date.
array_pop( $title );
// Convert array to string.
$title = implode( $title );
// Echo.
echo $title;

OR
you can do the same using regex like the following which do not have the limitation as above:

        // WP converts hyphens with spaces to n-dash, so convert them to hyphen again.
        $title = str_replace( array( ' ', ' ', '–', '–', '—', '—' ), '-', get_the_title() );

        // Pattern for date with hyphen and space.
        $pattern = '(\s\W\s\d+)';

        // Replace with space.
        echo preg_replace( $pattern, ' ', $title );