JSFiddle - React, Tailwind, and code Playground
HTML
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.0/moment.js"></script>
<input type="text" id="jd">
JavaScript
//var time = moment("2018-04-07 23:45:16 -0300", "YYYY-MM-DD HH:mm:ss Z").utc();
var time = moment.utc("2018-04-07 02:45:16","YYYY-MM-DD HH:mm:ss");
var Y = time.year();
var M = time.month() + 1;
var D = moment.duration(time.format('HH:mm:ss')).asDays();
/*
if( M == 1 || M == 2 ) {
Y = Y - 1;
M = M + 12;
}
var A = Y / 100;
var B = 2 - A + (A / 4);
var C = ( Y > 0 ) ? (365.25 * Y) : ((365.25 * Y) - 0.75);
var E = 30.6001 * (M + 1);
var JD = B+C+D+E+1720994.5;
*/
var JD = time/86400000 + 2440587.5;
document.getElementById('jd').value = JD;
console.log(JD);
//2458215.61477