I've had a look at this, and want to check back with you on something.
At the moment, the system works on the principle that if the listing is submitted with an end date, then the the start date is calculated by subtracting the length of time you want the listing to run from the end date. If this brings the start date before the current time, then the system by default sets the start date as the current time.The end time is then calculated by adding the listing length to the start date we've just calculated.
From what I can see and from the tests I've done so far, this should never cause the end date to end up before the current time, which is the only reason why a listing would be 'ended'. But you did mention that you set both the start and end date, which shouldn't be possible as jQuery deactivates one option or the other in the form. If it's not doing that then it suggests a minor problem.
But, you did mention how you got it to let you submit a listing. From your description that is how it should work. the fact it doesn't show shouldn't be an issue. If the start date that is created is after the current time, then it won't show now, but will show however many days before the end date/time you've selected.
i.e.
19th of June 2014 at 23:00 you submit as your end date. The listing is 7 days long.
You won't therefore see the listing until the 10th of June after 23:00.
Does that help?