(This is all basic suggestions, based on the limited information provided.)
Within MySQL you would probably be looking at using the GROUP BY
statement (Tutorial on "GROUP BY") using something like the following:
SELECT
( SUM( UNIX_TIMESTAMP( `workEnd` )
- UNIX_TIMESTAMP( `workStart` )
) / 3600 ) AS `hoursWorked` ,
DATE_FORMAT( `workStart` , "%Y-%m" ) AS `yearAndMonth`
FROM
`yourTableName`
WHERE
`employeeName`="John"
GROUP BY
`yearAndMonth`
ORDER BY
`yearAndMonth` DESC
This will return data somewhat like the following:
hoursWorked | yearAndMonth
--------------------------
22.0000 | 2010-02
15.2500 | 2010-01
From that data, you can then fill a graphing package, like Google Charts (Charts API) to represent that information in a graphic form.
(I am aware that this is not an exhaustive answer, but the hopes are to give you a few pointers on where to start looking, so you can start finding your own solution and then return to StackOverflow with more specific questions when parts of your solution are difficult.)